15

Я удивлен, что мне не удалось найти ответ на этот вопрос, но, возможно, я упускаю что-то очевидное: возможно ли сохранить список буферов для каждого окна? У меня часто бывает около 4 разделений, и каждый из них, как правило, служит определенной цели: CSS в одном, JS в другом, HTML в нескольких других и т.д.

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

Мне действительно нравится список MRU, который есть в BufExplorer, но меня раздражает, что он основан на моем глобальном списке буферов - мне нужна история MRU для каждого окна.

5 ответов5

1

ИМХО, что вам действительно нужно, так это менеджер Work Space.

Вы можете найти один для vim @ http://www.vim.org/scripts/script.php?script_id=1410

Он предоставит вам следующие команды:

:WsAddFile              Add a new file to the workspace.                  
:WsAddGroup             Add a new group to the workspace.                 
:WsClose                Close the workspace window.                       
:WsInsertFile           Insert a file.                                    
:WsInsertGroup  Insert a group.                                           
:WsOpen         Open a workspace and display it in a window.              
:WsRun          Run a command using the selected unquoted file names.     
:WsRunq         Run a command using the selected quoted file names.       
:WsSave         Save the workspace.                                       
:WsSessionOpen  Open the workspace and Vim session.                       
:WsSessionSave  Save the workspace and the Vim session.                   
:WsToggle               Open or Close the workspace window. 

У меня есть снимок экрана работы с Workspace manager с 4+ окнами, размещенными на моем фб, вы можете посмотреть его там (который является общедоступным).

Это не совсем список буферов, как вы хотели, но вы можете открывать файлы в разных окнах и в нескольких буферах в одном окне.

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

Это так близко к тому, что вы можете получить, AFIK.

Добрый день.

0

Зачем использовать этот уровень управления окнами в vim? Я иногда использую разделенные окна - у меня Ctrl-F сопоставлен с командой grep в стиле find-in-files, которая появляется в разделенном окне, и я также иногда использую vimdiff.

Но вы действительно хотите постоянное управление окнами в vim? Диспетчер соединений PuTTY и все виды эмуляторов терминалов позволяют вам разделить терминалы, как вы хотите, а затем запустить отдельные сеансы vim в каждом.

0

Я не знаю о таком плагине.

Одним из быстрых способов открыть буфер определенного файла является использование команды FuzzyFinder:FufBuffer. Откроется список всех открытых буферов (кроме одного в вашем текущем окне) для удобного доступа. Я связан с моим, фн. Это позволило бы мне, например, быстро просмотреть все css-файлы с помощью, fncss или все js-файлы с помощью, fnjs. FuzzyFinder отлично подходит для получения того файла / буфера / каталога / и т.д., который вам нужен, с минимальными усилиями (не только в данном конкретном случае использования).

Тем не менее, я подозреваю, что вы ищете что-то, что позволит вам использовать:bn и:bN (или что бы то ни было у вас отображено, не могу вспомнить, если ctrl-n/p по умолчанию или мой пользовательский) для переключения между вашими буферами определенный тип файла.

Возможно, вы могли бы создать плагин, который дает вам команды, позволяющие переключаться на предыдущие / следующие буферы того же типа, что и файл текущего буфера в текущем окне.

0

открывайте NERDTree слева. >

У меня открыто несколько буферов (только один виден в главном окне ... назовите его "буфер 1")

Теперь я перехожу к NERDTree и выбираю другой файл, который просто хочу посмотреть или скопировать. Итак, я открываю этот файл из NERDTree, и buffer1 правильно скрыт, и я сейчас смотрю на только что открытый буфер (назовите его buffer 2)

Теперь я хочу полностью выйти из этого буфера 2 и вернуться к редактированию буфера 1, но когда я делаю:q в буфере 2, я в конечном итоге смотрю только на одно большое NERDTree, и мне приходится заново отображать buffer1. ... [показать остаток цитаты]

Я не использую Nerdtree, но звучит так, как будто вы должны набирать Ctrl- ^ (вероятно, Ctrl + клавиша 6), чтобы переключиться обратно на buffer1.

-1

Это не полный ответ, но кажется, что vim хранит отдельные буферы # и% для каждого окна. Таким образом, вы можете быстро чередовать два файла в одном окне (используя CTRL- ^) и два разных файла в другом окне. Хотя список буферов - это все те буферы, которые вы добавили.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .