Как я могу закрыть крайнее левое окно в Vim?

Я пытаюсь записать команду, которая закроет древовидный браузер (дерево энергии) окно и изменит размер других окон.

,to открывает окно и корректирует размер окна так, чтобы все открытые окна сохранили нормальный размер (использование :set columns+=30CTRL-W =).

,tc должен закрыть древовидное окно (во всю длину, крайне левый) и изменить размер главного окна (:set columns-=30).

Как я могу записать команду, которая закрывает крайнее левое окно так, чтобы я мог ввести ,tc закрыть окно и изменить размер в одном выстреле?

  • Я могу перейти к нему с CTRL-W h, но это является неэлегантным и потенциально раздражающим (слышимый звонок!) для использования 10CTRL-W h в команде.
  • :topleft c к сожалению, не работает.

Можно ли думать об изящном способе сделать это?

0
задан 10.01.2011, 03:09

1 ответ

Если окно действительно будет полно в крайне левом, то оно будет иметь окно номер 1, таким образом, отображение как это должно будет работать:

:nmap ,tc :exe '1wincmd w' | close<CR>

Это переходит к первому окну, затем закрывает его. Недостаток состоит в том, что активное окно станет тем, что было окном номер 2 (который становится окном номер 1, когда исходное окно номер 1 закрывается), а не последнее окно, Вы были в.

К сожалению, :1wincmd c не закрывает первое окно, так как ctrl-w c не принимает количество, таким образом, я не вижу способ постараться не сначала перемещаться в окно, Вы хотите закрыться.

Редактирование 2017 года: Так как я записал этот ответ, ctrl-w c действительно принимает количество в более новых версиях Vim, таким образом, ответ должен только использовать :1wincmd c и это не переключит курсор далеко от Вашего активного окна:

:nmap ,tc :1wincmd c<CR>
1
ответ дан 24.11.2019, 12:12

Теги

Похожие вопросы