LINUX.ORG.RU

VIM: переключение буферов и буфер обмена

 , , ,


1

2

А есть ли в VIM буфер обмена, подобный буферу в Emacs - удаляется строка в буфер (а на самом деле в стек) и потом при вставке из этого буфера можно циклично выбирать, что вставить. Мне показалось удобно.

Хочу тоже по dd и/или по Y все собирать в буфер, а потом по некой комбинации выбирать, что вставить из буфера.

Еще хочется переключение на предыдущий буфер вне зависимости от его индекса. Есть несколько открытых буферов: 1, 2, 3, 4. Текущий 2. Переключился на 4 (buf 4). Теперь хочу вернуться на предыдущий (буфер номер 2).

★★★★★

Теперь хочу вернуться на предыдущий (буфер номер 2).

Ctrl+6 переключает между последними двумя.

ziemin ★★ ()

Так последние десять скопированных строк же сохраняются в цифровых регистрах («0 - „9). Не пойдет?

keyran ★★ ()
Ответ на: комментарий от andreyu

Кстати, у меня работает комбинация C-^ для переключения на предыдущий буфер.

andreyu ★★★★★ ()
Ответ на: комментарий от ziemin

Ctrl+6 переключает между последними двумя.

Угу, но не последними двумя, а на предыдущий буфер, как это делает :b #

andreyu ★★★★★ ()
Ответ на: комментарий от keyran

Так последние десять скопированных строк же сохраняются в цифровых регистрах («0 - „9). Не пойдет?

Это не так удобно. Предствьте, вы делаете yank разных строк несколько раз. Потом делаете P (ну или p), а при помощи некого хоткея на месте вставки перебираются yank'нутые строки. В Emacs это действительно удобная фича.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Если подойдет как решение, то можно написать функцию, которая будет брать содержимое этих десяти регистров и выдавать в меню, по типу автокомплита. Такое решение устроит?

keyran ★★ ()

только одна проблема, ты путаешь буферы и регистры
если хочешь посмотреть содержимое регистров - набери :reg[isters]<enter>
вставить содержимое любого регистра в буфер на текущей позиции курсора - double-quote[название регистра]p
double-quote - потому что ДУРАЦКАЯ АВТОЗАМЕНА НОРМАЛЬНЫХ ДВОЙНЫХ КАВЫЧЕК НА КАКУЮ-ТО ПАРАШУ, БЛЯТЬ!!!!
а [название регистра] потому что ригистрами могут быть не только числа, но и буквы
а ещё лучше vim-help почитай, там есть ВСЁ

q11q11 ★★★★★ ()
Последнее исправление: q11q11 (всего исправлений: 3)
Ответ на: комментарий от dmitry_malikov

let g:yankring_replace_n_pkey = '<Leader>p'
let g:yankring_replace_n_nkey = '<Leader>n'

Но это не по дефольту. Себе замапил на m-p и m-n.

andreyu ★★★★★ ()
Ответ на: комментарий от q11q11

только одна проблема, ты путаешь буферы и регистры

Нет, не путаю. В теме два вопроса - про регистры и буферы.

вставить содержимое любого регистра в буфер на текущей позиции курсора - double-quote[название регистра]p

Спасибо, но мануал я читать тоже умеею. Меня интересовало поведение с регистрами как в Emacs. Решение найдено - YankRing.

а ещё лучше vim-help почитай, там есть ВСЁ

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

Одним словом, ваш совет до безобразия бесполезен.

andreyu ★★★★★ ()
Ответ на: комментарий от KblCb

А что такое CtrlP?

Удобный плагин для переключения между буферами, файлами проекта, с fuzzy-поиском. Это один из полезнейших плагинов для vim, на мой взгляд.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Спасибо, но мануал я читать тоже умеею.
Там нет про переключение с буфера на последний буфер (или следующий, если хоткей был нажат еще раз)

читать умеешь, ога

:blast
:bnext
:bprev
:bfirst
вешаешь на любой удобный хоткей

а ещё гонишь что мои советы бесполезны
и вообще, хочешь чтоб было как в емакс - используй емакс

q11q11 ★★★★★ ()
Ответ на: комментарий от q11q11

читать умеешь, ога

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

а ещё гонишь что мои советы бесполезны

Ваши советы относительно этого топика совершенно бесполезны.

и вообще, хочешь чтоб было как в емакс - используй емакс

Вот дурачок. Уже вопрос решен, а вы все продолжаете нести ахинею.

andreyu ★★★★★ ()
Ответ на: комментарий от dmitry_malikov

let g:yankring_replace_n_pkey = '<Leader>p'
let g:yankring_replace_n_nkey = '<Leader>n'

Но это не отвязывает YankRing от <c-p>, к сожалению. Что изрядно бесит, потому что к ^p я уже привык, а перепрописывание стандартной комбинации CtrlP в конфиге ещё раз как-то коряво.

anonymous ()
Ответ на: комментарий от anonymous

А, вру. Отвязывает, но только если прописать в конфиге. Если просто вбить как команду, то нет. В общем, спасибо.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.