Что делает: q1 в Vim?

Я только заметил, что ввод :q1 закрывает файл, который я открываю (я нашел это, опечатывая :q!)

На основе таких команд, как 2dd (удалить две строки) или 2j (спуститесь вниз по двум линиям), я бы ожидал :2q для "выхода из двух файлов" (хотя, если я открываю два файла с vi -O testfile1 testfile2 только :2q закрывает один из них - и так же :q2).

Является ли число после :q просто отбрасывается? Или это имеет некоторый эффект, который я не смог определить?

И, в более общем плане, как я мог ответить на этот вопрос для себя? Я проверил usr_21.txt| Go away and come back usr_21.txt| Go away and come back в помощь Вима, но ничего не нашел об этом поведении. Я даже проверил знаменитый вопрос, но никто -O ne не упомянул об этом.

Ответы

Ответ 1

Команда q с номером закрывает данный раскол в этой позиции.

:q<split position> или :<split position>q закроет раскол в этой позиции.

Допустим, ваш макет окна vim выглядит следующим образом:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

Если вы запустите команду q1 она закроет первый сплит. q2 закроет второй раскол и наоборот.

Порядок разделения позиции в команде quit не имеет значения. :2q или :q2 закроет второй сплит.

Если разделенная позиция, которую вы передаете команде, больше, чем количество текущих разделов, она просто закроет последний сплит.

Например, если вы запустите q100 в приведенной выше настройке окна, где есть только 3 раскола, он закроет последний сплит (Split 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