Minoru 18.09.2012 14:59 micropost

@plhk сказал, что ему всегда было лень прочитать про регистры, так что я взялся сделать это за него :) Итак, :help registers за пять минут (с упущениями и упрощениями).

Во-первых, десять цифровых регистров, от "0 до "9. Когда вы делаете, например, dd (удаляете строку) или c$ (меняете всё с текущей позиции и до конца строки), текст помещается в "1; при этом предыдущее содержимое "1 вытесняется в "2, и так далее, а содержимое "9 теряется. Замечу, что при yy (копировании) сдвига не происходит — новый текст просто помещается в "0.

Если вы удаляете меньше одной строки (скажем, всего пару слов — d2w), текст помещается не в "1, а в "-. Это small delete register.

Black hole register, он же "_ — запись в него не задевает другие регистры (то есть при "_dd, например, содержимое "1.."9 не меняется). При чтении оттуда получите пустоту.

Ещё есть unnamed register — "". Он используется по умолчанию для p, d, c, s, y и x, причём даже в тех случаях, когда регистр команде был указан явно (то есть при "3d текст попадёт и в "3, и в ""). Можете думать о нём как об указателе на последний изменявшийся регистр.

Именованные регистры "a .. "z используются исключительно пользователем, причём когда они написаны прописью, происходит перезапись, а когда заглавными, то содержимое дополняется. Так что можно бегать по текстам и делать "Add, собирая абзацы, которые нужно вынести в отдельную главу.

Всякие специальные штуки:

 * ". — последний вставленный текст. Если забыли набрать count перед i, можно потом всё починить, сделав ".p нужное количество раз;
 * "% — имя текущего файла;
 * "# — имя альтернативного файла (не знаете, что это? :help alternate-file, или ждите моего следующего микропоста! :);
 * ": — последняя команда, которую вы *вводили* (то есть текст какого-то маппинга так получить не выйдет);
 * "/ — последний шаблон поиска;
 * "*, "+ и "~ — первичный и вторичный буфферы X, а также текст, который перетянули в окно GVim.

Про регистр "= ничего не расскажу — он связан с некими выражениями (:help expressions), о которых я (пока что) ничего не знаю.

Stay tuned!

vim
Do you really want to delete ?