Что делает:q1 делает в Vim?
Я просто заметил, что вход :q1
закрывает файл, который у меня в данный момент открыт (я нашел это, опечатав :q!
)
На основе таких команд, как 2dd
(удалить две строки) или 2j
(двигаться вниз на две строки), я бы ожидал :2q
"выйти из двух файлов" (хотя, если я открою два файла с vi -O testfile1 testfile2
, :2q
закрываеттолько один из них - и так :q2
).
Число после :q
просто выбрасывается? Или это имеет какой-то эффект, который я не смог определить?
И, в целом, - как я могу ответить на этот вопрос для себя? Я проверил usr_21.txt| Go away and come back
в Vim помогу, но ничего не нашел об этом поведении. Я даже проверил знаменитый вопрос, но никто ничего не упомянул об этом.
1 ответ
q
Команда с номером закрывает данное разделение в этой позиции.
:q<split position>
или же :<split position>q
закроет разделение в этой позиции.
Допустим, ваш макет окна vim выглядит следующим образом:
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
Если вы бежите q1
Команда закроет первый сплит. q2
закроет второй сплит и наоборот.
Порядок позиции разделения в команде quit не имеет значения. :2q
или же :q2
закроет второй сплит.
Если позиция разделения, которую вы передаете команде, больше, чем количество текущих разделений, она просто закроет последнее разделение.
Например, если вы запустите q100
в приведенном выше окне настройки, где есть только 3 разделения, он закроет последний разделить (Разделить 3).
Это то, что перечислено в документации vim. Вы можете найти документацию, набрав :help :close
затем прокрутите вверх, чтобы найти Closing a window
раздел.
If [count] is greater than the last window number the last
window will be closed:
¦ ¦ :1quit " quit the first window
¦ ¦ :$quit " quit the last window
¦ ¦ :9quit " quit the last window
" if there are fewer than 9 windows opened
¦ ¦ :-quit " quit the previous window
¦ ¦ :+quit " quit the next window
¦ ¦ :+2quit " quit the second next window