VIM: Как я могу открыть файл справа как vsplit из левой панели NerdTree?

84

Я установил плагин NerdTree.

Как я могу открыть файл с правой стороны как vsplit из левой панели NerdTree?

робко
источник

Ответы:

86

Есть sкоманда, но она открывает файл, разделенный слева от текущего буфера. Хотя вы можете нажать Ctrl+, W rчтобы поменять окна местами.

гримгав
источник
3
Это нормально, но если я хочу открыть другой файл, набрав s, то я получаю другое разделенное окно, но я хочу заменить старое разделенное окно текущим открытым файлом, как я могу это сделать?
shible
5
Похоже, что после добавления set splitright, как предложил @PrinceGoulash, sв файле внутри NerdTree откроется разделение справа без необходимости делать это Ctrl-W r. Если я правильно вас понял, если вы хотите придерживаться только двух вертикально разделенных окон, вы можете переключиться на старое окно и открыть в нем новый файл через NerdTree, просто нажав Enter.
grimgav
Нет, я пытаюсь сказать, что есть два окна vsplit, слева - меню ботаника, если я нажму «s», оно перейдет в правую сторону. всплывающее окно больше не появится.
shible
@guru Тогда вы хотите «открыть» новое окно, а не «разбивать» его. Окно всегда открывается / заменяет последний выбранный буфер. К сожалению, скорее всего, это будет левый из двух ваших открытых. Не идеально, но один из вариантов - повернуть окна вокруг переходного отверстия Ctrl+W R, затем открыть файл и повернуть обратно.
JHannes
161

Чтобы vsplitпоместить новый буфер справа от текущего буфера:

set splitright

Точно так же, чтобы splitпоместить новый буфер ниже текущего:

set splitbelow

Однако я не пробовал это с NerdTree.

Принц гуляш
источник
3
хорошо, но как я могу открыть vsplited файл, заменив старый?
shible
1
@shibly Если вы splitrightустановили, то вы можете выйти из файла, который в настоящее время находится справа vsplit newfilename, и это поместит новый файл на место старого. Вы также можете сделать те , в одной строке , как это: q | vsplit newfilename. Это предполагает, что файл справа является активным.
SunSparc
1
только что протестировал, splitright хорошо работает с nerdtree. Обратите внимание, что это сделает все дальнейшие разбиения горизонтальными, а не вертикальными, если они не используютсяvsplit
Дуайт Спенсер
3

Это что-то вроде хака, но как я это делаю:

  1. Поместите курсор в окно, в котором я хочу открыть файл
  2. Hit <leader>n<leader>n(это закрывает NERDtree, а затем снова открывает его с курсором в NERDtree)
  3. Выберите файл

В моей системе это открывает его в последнем окне, в котором я был только что, если файл еще не открыт на моем экране. Начните в том окне, в котором хотите открыть файл

Начните с того окна, в котором хотите открыть файл.

После <code> <leader> n <leader> n </code> вы вернетесь в NERDTree

Нажмите, <leader>n<leader>nчтобы закрыть и снова открыть NERDTree

Выберите файл, который хотите открыть!

Выберите нужный файл!

Быстро C-w =вернет вашим окнам правильные пропорции.

Бен Кушигиан
источник
отличное решение. от <leader>nвас значит <C-n>?
Hafenkranich 02
3

Не уверен, что кто-то еще борется с этим, но вот как я с этим справился.

Вы можете использовать

:ls 

чтобы перечислить доступные буферы. Это выглядело бы примерно так:

1 "foo.txt"
2 "blame_the_user.java"

:b1 выбрать foo.txt

:b2 для blame_the_user.java

Этот метод можно выполнить из любого окна настройки с помощью :spили :vs.

Сначала откройте те буферы, которые хотите разделить.

S-орел
источник