Открыть файл в определенном разделе в vim (с помощью fzf)
Я часто использую общий макет на экране - несколько вертикальных разделений, дерево файлов (NerdTree) слева.
Когда мне нужен новый буфер, я обычно хочу, чтобы он попал в определенный раздел. Например, представьте себе следующую оконную структуру:
| file_tree | split1 | split2 |
Теперь я вызываю команду списка файлов (в моем случае - fzf). Когда я нахожу имя файла, я хочу нажать что-то вродеCtrl+1
открыть файл в split1
, Ctrl+2
открыть файл в split2
и т.д. Как я могу реализовать такие ярлыки? Конкретно с fzf, если возможно.
В противном случае опыт будет немного неудобным:
- Я всегда могу открыть новый vsplit, но тогда мне нужно закрыть некоторые из других (потому что теперь их слишком много), они перетасовываются и т. Д.
- Я могу сначала сфокусироваться на конкретном разбиении, а затем вызвать команду вывода списка файлов. Это работает, но я все время забываю об этом и половину времени продолжаю открывать файл в крошечном
file_tree
Трещина.
1 ответ
К сожалению, открытие файла в определенном разделе невозможно. Это из-за природы разделения, это своего рода динамическое окно просмотра для буфера, которое можно переставить внутри окна в любой момент (с помощью сочетаний клавиш, таких как Ctrl+W, Shift+H / J / K / L), создать и удалить. Также, если у вас есть несохраненный буфер в разбиении, Vim не позволит вам открыть там новый файл без сохранения существующего, и в этом случае подход, который вы хотели бы использовать, тоже не сработает.
Вы всегда можете быстро переключиться на определенный разделитель с помощью сочетания клавиш N, Ctrl+WW, где N - номер вашего разделения. И вы можете перемещаться между соседними разделениями, используя сочетание клавиш Ctrl + W, h / j / k / l.
Вот как я работаю с разбиениями: у меня обычно открыто 6 разделений (2 строки и 3 столбца), а NerdTree я открываю с помощью своего ярлыка, только мне это нужно. Чтобы открыть файл в некотором разделении, я перехожу туда с помощью ярлыка N, Ctrl+WW, где N - номер разделения, а затем я открываю файл с помощью NerdTree (если я не могу вспомнить имя файла) или Fzf (когда я знаю имя файла).
Возможно, вам будет удобнее использовать вкладки, в этом случае вы можете открывать каждый новый файл в новой вкладке с помощью сочетания клавиш Ctrl+T после его выбора в Fzf. А затем вы можете переключаться между вкладками, используя сочетания клавиш gt (вперед) и gT (назад).