1) Если вы читали vim help on 'listchars'
, вы увидите, что он обеспечивает trail:c
вариант, который может быть использован для обозначения завершающих пробелов с помощью пользовательского характера c
. Я предполагаю, что это вариант, который вы используете в настоящее время. К счастью, начиная с patch 7.4.711 (см. Также changelog), 'listchars'
теперь поддерживает опцию space:c
, которая может использоваться для обозначения всех пробелов символом c
. Поэтому вы можете использовать это, если ваша версия vim достаточно недавняя. (Обратите внимание, что онлайн-ВИМ страница помощи я просто связан, кажется, немного устарелый в данный момент, так что не упоминает вариант space:c
). Например:
:set lcs+=space:.
Что касается положив >
в начале текущей строки, я считаю, что это невозможно. Поэтому я боюсь, что вам не повезло, если кто-то еще не знает трюк, о котором я не знаю.
Наконец, вы можете использовать опцию tab:xy
, чтобы поместить что-то вместо вкладок. Я на самом деле хотел бы использовать пару символов Unicode для этого:
:set lcs+=tab:•·
2) Что вы ищете здесь mapping. Вы должны отметить, что «Shift + T» на самом деле является просто капиталом T, так как смена буквенного ключа отправляет вариант капитала буквы на всех современных компьютерах. Таким образом, вы можете делать то, что вы хотите с этим:
nmap T <C-a>
Это создаст T, чтобы увеличить число под курсором, который является нормальной функцией ^а.
Наконец, что касается сопоставления клавиш со стрелками со стрелками, это может быть сложно, потому что это зависит от того, на какой платформе вы работаете vim, например. используете ли вы gvim для Windows или терминал, основанный на платформе Unix.Если Gvim, вы можете использовать простые <M-...>
коды:
nmap <M-Left> <C-w>h
nmap <M-Down> <C-w>j
nmap <M-Up> <C-w>k
nmap <M-Right> <C-w>l
Но на других платформах, вам необходимо выяснить, управляющие последовательности, которые могут быть отправлены при нажатии мета-модифицированный ключ со стрелкой, и карта тех. Например, когда я запускаю Cygwin Vim в mintty на Windows, я могу использовать это:
nmap <Esc>[1;3D <C-w>h
nmap <Esc>[1;3B <C-w>j
nmap <Esc>[1;3A <C-w>k
nmap <Esc>[1;3C <C-w>l
Вы должны быть в состоянии выяснить, управляющие последовательности, посылаемые комбинации клавиш, введя режим вставки в буфер (или команда режим линии тоже должен работать), нажимая ^v, а затем нажимая комбинацию клавиш. Вводимые символы - это escape-последовательность, отправленная комбинацией клавиш.
3) Я никогда не использовал плагин дерева NERD раньше или не пытался сопоставить контрольное пространство, поэтому я не могу говорить с этим. Возможно, вы могли бы задать новый вопрос, который фокусируется на этом вопросе.
Я уже пытался установить lcs, как и предложил be4, я написал эту проблему. это то, что было в моем .vimrc ":" listchars set list set lcs = trail: set lcs + = space: · set lcs + = tab: →→ set listchars = eol: ¬, который не работал. только eol работал и около 2) в возвышенном тексте или атоме легко писать keybinding. например, в возвышенном тексте есть синтаксис для двойного привязки клавиш ["ctrl + k", "ctrl + b"] для переключения боковой панели.какой синтаксис существует в vim для двойных привязок? например, для стрелки C-W + было бы? –
Max
1) Моя гипотеза заключается в том, что вы перезаписываете настройки 'set lcs + = space: c' и' set lcs + = tab: xy', когда вы запускаете настройку 'set listchars = eol: c'. Обратите внимание, что в предыдущих двух настройках используется '+ =', в то время как последний параметр использует '=', без плюса. Это перезапишет все предыдущие настройки. Вам нужно изменить его на '+ =', чтобы предыдущие настройки оставались в силе. 2) Исправить. – bgoldst
Вы были правы, мой eol перегрузил предыдущие lcs. но, однако, lcs + = tab • ·. или lcs + = tab: →→. не работает. Я даже пытался удалить все остальные lcs и оставил только один с вкладкой - он не работал. и btw, как я могу поставить> - в начале строки, где im в настоящее время? – Max