Как мне сохранить список буферов для каждого окна в Vim?


15

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

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

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


Вы не можете найти это, потому что это еще не было построено. Большинство ближайших соседей определены в этом Q & A
Новая Александрия

Ответы:


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 с 4+ окнами, размещенными на моем фб , вы можете посмотреть его там (который является общедоступным).

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

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

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

Добрый день.


0

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

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


Можете ли вы поделиться регистрами между экземплярами vim? Это всегда моя главная причина, по которой я не хочу запускать несколько экземпляров vim: я не могу ни yankиз одного, ни из putдругого.
brianmearns

0

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

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

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

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

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


0

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

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

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

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


Кстати, я думаю, что управление этими отдельными списками буферов было бы скорее болью, чем облегчением.
Ханнес

-1

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


Это действительно комментарий, но я пока не могу комментировать, поэтому я публикую ответ, который был отклонен, потому что он не отвечает на вопрос. Пойди разберись.
mondaugen
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.