Как я могу вставить реальный символ табуляции в Vim?
Когда у меня есть vimrc здесь:
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab
И у меня установлен плагин supertab. Всякий раз, когда я нахожусь в режиме вставки, я нажимаю вкладку, она показывает автоматическое завершение, но иногда мне хотелось бы вставить настоящий символ табуляции в строковый литерал вроде. Итак, что я имею в виду всякий раз, когда я нажимаю вкладку в литеральной литературе с двойными кавычками, она должна вводить нам настоящий символ табуляции.
Ответы
Ответ 1
В режиме вставки или в командном режиме (приглашение :
в нижней части редактора) введите CTRL + V, затем TAB.
Использование CTRL + V сигнализирует Vim о том, что он должен принимать следующий символ буквально. Даже в режиме вставки.
UPDATE:
Как отметил Герберт Сиц, если gVim находится в режиме Windows (по умолчанию), вы должны использовать CRTL + Q вместо CTRL + V.
Ответ 2
@Samnang: У меня такая же настройка, как у вас; к сожалению, ответ Джейсона не работает, для меня.
Это обходное решение:
Обновленный ответ, вдохновленный комментарием @Cyryl1972.
Вставить вкладку в начале всех строк (обратите внимание также: нет необходимости выбирать строки для любого из следующего кода, как указано в строке, соответствующей части выражения):
:1,$s/^/\t\1/
Закладка Inert после первых 10 символов во всех строках:
:1,$s/^\(.\{10}\)/\1\t/
Объяснение - первая часть:
:1,$ Match from line 1 to end of file
^(.{10} Collect (preserve) all text from beginning of line to position 10
(you need to escape the parentheses, \( and \), as well the FIRST
(left) curly brace, only: \{ -- as it, { , appears to have special
meaning in regex when used for this purpose
Объяснение - вторая часть:
/1 Add back the preserved text
\t Insert a tab
... и остальная часть строки также автоматически восстанавливается.
Текущая строка, только:
:s/^/\t\1/
Пример: вставьте вкладку в положение 10 (с индексом 0) в строках 2-4:
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
:2,4s/^\(.\{10}\)/\1\t/
1234567890abcdefghij
1234567890 abcdefghij
1234567890 abcdefghij
1234567890 abcdefghij
1234567890abcdefghij
Ссылки (StackOverflow):
Ссылки (другие):