Как редактировать существующее сопоставление клавиш в vim?
Как мне отредактировать существующее отображение в vim? Я установил сопоставление в моем файле.vim, используя одну из стандартных команд сопоставления:
map ^A o]]></code>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<code><![CDATA[0kkkkkk5ehi
Я хочу отредактировать эту длинную команду, чтобы использовать "matlab" вместо кода, например:
map ^A o]]></matlab>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<matlab><![CDATA[0kkkkkk5ehi
Однако я не хочу редактировать файл.vim - я снова буду использовать исходное отображение. Я просто хочу изменить отображение для моей текущей сессии. Я попытался: карта ^A, но это только отображает текущее отображение, и я не могу скопировать отображаемый текст.
PS Обратите внимание, что символы ^M и ^ A вставляются с помощью Ctrl-Q Ctrl-M и т. Д.
2 ответа
Настройка отображения только для текущего сеанса необычна; наверное, поэтому плохо поддерживается. Я предполагаю, что вы на самом деле не озабочены сессией, а скорее типом файлов Matlab. Для этого есть отличная поддержка. Если 'filetype'
определяется как matlab
, вы можете поместить вариант отображения локального буфера в ~/.vim/after/ftplugin/matlab.vim
:
map <buffer> ^A ...
Прямое редактирование
Если вы предпочитаете придерживаться своего первоначального плана, я бы сделал это так:
- Открытая конфигурация:
:split ~/.vimrc
- Редактировать отображение на месте
- Дерните строку:
yy
- Выполните, чтобы активировать для текущего сеанса:
:@"
- Прервать редактирование без сохранения:
:bdelete!
альтернатива
Для более общего решения, вы также можете захватить вывод оригинала :map ^A
команда через :redir
, затем :put
что в :new
скретч-буфер, и наконец :source
тот. Это больше ручных шагов и ввода, но может быть автоматизировано с помощью специальной команды. Стоит, если вам это нужно часто.
Чтобы установить карту только для текущего сеанса, выполните
:map ^A o]]></matlab>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<matlab><![CDATA[0kkkkkk5ehi