2015-01-14 3 views
0

Как узнать, какая команда выполняется по умолчанию для Vim?Как узнать, какая команда Vim выполняется ярлыком?

Я видел похожие вопросы, в которых принятый ответ применялся только для пользовательских (пользовательских или плагинов определенных ярлыков).

Например, я хочу отобразить действие, выполняемое (прокрутить половину страницы вниз) с помощью другого ярлыка, я не знаю, какую команду вызывать. Я не могу сопоставить его с <c-d>, потому что я использую этот ярлык для другой команды (:q).

ответ

1

Несколько полезных ответов уже, но я думаю, что в основном отсутствует разница между :map и :noremap. С последним (и рекомендованным!) Существующие сопоставления не рассматриваются.

Так что, если у вас есть сопоставление с <C-d>, и вы все равно хотите использовать это «прокрутите страницу вниз на половину страницы» в другом месте, просто используйте :nnoremap ... <C-d>.

Как и другие отметили, нет встроенной функции, по умолчанию <C-d> ключ is Функция. Внутри функций (против сопоставлений, где вы использовали бы :noremap), вы также можете использовать :normal! для его запуска: :execute "normal! \<C-d>".

0

вы можете создать настроенное отображение, например nnoremap <leader>a ggVG<leader>a отображался в команду последовательности: gg V G

Я предполагаю, что «по умолчанию ярлык» вы имели в виду был похож на gg or V or G в приведенном выше примере. Эти «ярлыки» вызывают некоторые функции/программы, но мы не знаем этих функций, поскольку они являются встроенными, если вы хотите их узнать, вам нужно прочитать исходные коды vim.

На ваш вопрос, создавая отображение для scroll half page down, вы можете попробовать

nnoremap {yourKeysHere} <c-d> 

:h ctrl-d для деталей, <c-d> будет прокручиваться половину экрана вниз. Другими словами, вы просто создаете сопоставление с этими «ярлыками по умолчанию», после чего вы его получили.

Если это не ответит на ваш вопрос, просьба предоставить конкретное требование, чего вы хотите достичь.

+0

Я только что редактировал мой вопрос, кажется, что SO MD не печатает "". Я не могу создать ярлык, указывающий на '', чтобы получить функциональность прокрутки, поскольку я переназначил '' команде ': exit'. –

+0

с использованием 'nnoremap' будет игнорировать ваше сопоставление для' '. Вы можете использовать {yourKeysHere} в другом месте для доступа к этой функциональности. –

0

Для просмотра сопоставлений по умолчанию можно посмотреть в :help index.

Как вы упоминаете для пользовательских отображений вы можете использовать :map X, :imap X и т.д.

+0

Я могу видеть сопоставления по умолчанию с ': help index', как вы сказали, но он не предоставляет альтернативную команду, которую я могу использовать (что-то вроде': scrollHalfScreen'), поэтому я не могу сопоставить другой ярлык для прокрутки. –

0

Я не мог найти команды для быстрого доступа по умолчанию, но я найти способ добиться того, что я хотел:

" My custom map, use noremap to prevent <c-u> from using overridden definition nnoremap <Space> <c-d>

map <c-d> :q <cr>

1

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

Если вы хотите использовать функциональные возможности, предоставляемые d в отображении, просто используйте d:

nnoremap <key> <something>d<somethingelse> 

Что касается одного из ваших комментариев ниже: команды Ex все линии мудрая потому Ex был линейным, поэтому на самом деле не имеет смысла думать о них как о командных версиях команд нормального режима, которые, как правило, , как правило, характерно.

Смежные вопросы