Игнорирование определенных команд в неправильном окне vim - PullRequest
3 голосов
/ 15 ноября 2011

Довольно часто я нахожусь в окне быстрых исправлений, зануда или в другом специальном окне и нажимаю Ctrl-O, думая, что я в главном окне.То, что я пытаюсь сделать, это вернуться к моему предыдущему местоположению в моем главном окне.Я склонен также делать эту ошибку, открывая bufexplorer в моем окне быстрого исправления, и это вызывает некоторые действительно странные проблемы.

Есть ли простой способ игнорировать определенные команды в определенных видах буферов?

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Вы всегда можете сопоставить определенные вещи с <NOP> (без операции) ,

например в netrw (: e. )

nnoremap <C-o> <NOP>
"<C-o> no longer works

Применимость этого, конечно, будет зависеть от рассматриваемого случая. В сочетании с типом файла и <buffer> в автокомандах это может дать хорошие результаты.

1 голос
/ 15 ноября 2011

<C-w>p давайте перейдем к предыдущему окну.

0 голосов
/ 15 ноября 2011

Чтобы прыгнуть вперед после прыжка назад, вы можете нажать Ctrl + I .

С vim wiki - Переход к ранее посещенным локациям :

Как и в веб-браузере, вы можете вернуться назад, затем переслать:

 Press Ctrl-O to jump back to the previous (older) location.
 Press Ctrl-I (same as Tab) to jump forward to the next (newer) location.

Показать список переходов для текущего окна с помощью:

:jumps

Ваше текущее местоположение в списке переходов обозначается знаком «>», а первое число в каждой строке является счетчиком, который может быть использован для перехода к этому позиция. Например, после трехкратного нажатия Ctrl-O: прыжки Команда может показать что-то вроде этого:

 jump line  col file/text
   4   102    0 somefile.txt
   3    93    0 -invalid-
   2    23    0 the current line 23 is shown here
   1    89   34 the current line 89 is shown here
>  0    22   40 Display the jump list for the current window with:
   1    39    0 the current line 39 is shown here
   2   995    0 anotherfile.txt
   3    53  102 the current line 53 is shown here

Учитывая вышесказанное, вы можете нажать:

Ctrl-I to jump to line 39 in the current buffer.
Ctrl-O to jump to line 89 in the current buffer.
4 then Ctrl-O to jump to line 102 in file somefile.txt.
3 then Ctrl-I to jump to line 53 in the current buffer.

В приведенном выше примере: последняя строка была добавлена ​​в список переходов, когда была нажата первая Ctrl-O (чтобы вы могли вернуться к исходной позиция: строка 53, столбец 102). Строка 93 в текущем буфере нет существует дольше (место перехода неверно).

...