Коли я працюю над файлами в python, я інколи помиляюся з вкладками пробілів і навпаки. Чи можна змусити Vim відобразити символ для вкладки замість вкладки?
:h vim-faq
та шукайте /invisible
. Важко запам'ятовується тег :h faq-19.8
.
Коли я працюю над файлами в python, я інколи помиляюся з вкладками пробілів і навпаки. Чи можна змусити Vim відобразити символ для вкладки замість вкладки?
:h vim-faq
та шукайте /invisible
. Важко запам'ятовується тег :h faq-19.8
.
Відповіді:
Так, використовуйте список:
set list
set listchars=tab:>-
Якщо ви помістите ці два рядки у свій .vimrc, буде показано вкладки як >
для стартового положення, так і -
через решту вкладки.
(Sidenote: listchars також може відображати пробіли із заднім крапкою trail:x
(замінити x
символом, який ви хочете використовувати для пробілу), що також може бути корисним.)
set listchars=tab:!·,trail:·
, IMHO ·
набагато чіткіше, ніж -
... Вам потрібна досить недавня версія Vim, щоб вона працювала до цього часу (не впевнений, який саме, я думаю, 7.3.x) ...
▸
оскільки він трохи менше, ніж >
. В даний час я бачу проміжок білого простору, позначаючи еол (хоча я можу спробувати вище). Мої налаштування: set listchars=eol:¬,tab:▸\
і
Основна відповідь полягає в тому :set list
, що вкладки відображаються як ^I
.
Однак я рекомендую вийти за рамки цього. Просто :set list
проблематично тим, що він не може зберегти візуальне вирівнювання на екрані. Наприклад:
%.o: %.cpp
^Ig++ -c $<
не виглядає добре, особливо якщо ви очікуєте, що g
показник g++
з'явиться під першим p
із cpp
(припускаючи tabstop=8
).
Тому я пропоную .vimrc
вам укласти щось на зразок :set listchars=tab:␉·
(Щоб було зрозуміло, це символ Unicode U + 2409 СИМВОЛ ДЛЯ ГОРИЗОНТАЛЬНОГО ТАБУЛЯЦІЇ, а потім U + 00B7 СЕРЕДНЯ ДОТ .)
Як пояснено в :help listchars
, двозначне налаштування для tab:xy
збереження візуального вирівнювання:
tab:xy Two characters to be used to show a tab. The first char is used once. The second char is repeated to fill the space that the tab normally occupies. "tab:>-" will show a tab that takes four spaces as ">---". When omitted, a tab is show as ^I.
Наведений вище приклад з’явиться на екрані у вигляді:
%.o: %.cpp
␉·······g++ -c $<
Особисто я розбираюся зі своїм listchars
:
:set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵
eol
використання я використовую U + 23CE СИМБОЛ ПОВЕРНЕННЯtrail
я використовую U + 2420 СИМВОЛ для просторуnbsp
я використовую U + 23B5 КОРОБКУВАННЯ БОТОМЦі символи є досить відмітними, що вони рідко з'являються буквально в тексті документа.
Щоб ввести ці спеціальні символи у свій текст vimrc
, введіть, Ctrl-vu23CE
перебуваючи в режимі вставки, як пояснено в :help utf-8-typing
.
set lcs=tab:├─
Для періодичного використання можна просто виділити всі вкладки в документі за допомогою наступної /
команди пошуку :
/\t
Щоб видалити виділення, просто введіть :noh
коротке значення для :nohlsearch
—не високої освітленості.
" Highlight tabs as errors.
" https://vi.stackexchange.com/a/9353/3168
match Error /\t/
Більше цих корисних команд виділення - включаючи комбінований пробіл і роблячи це постійним - дивіться у Вікі-вікі .
:match Error /\t/
можете виділити вкладки (або будь-який інший шаблон для цього питання) незалежно від реєстру пошуку та hlsearch (введіть, :match
щоб очистити його).
Мені особисто подобається використання плагіна indentLine , який відображає вертикальну лінію на рівнях відступу.
Це дуже допомагає, особливо в пітоні, де відступ важливий.
Крім усього іншого, він пропонує команду перемикання, яку можна відобразити на комбінацію клавіш, щоб ви могли вимкнути її, коли вона вам не потрібна.
Найпростіший спосіб зробити це :set list
, який покаже вкладки як ^I
і кінець рядка як $
.
Мені подобається використовувати відображення, яке дзвонить
:set invlist
для переключення між звичайним відображенням та відображенням списку.
Наприклад:
:nmap <leader>l :set invlist<cr>
Це дозволяє мені швидко перевірити, чи є проблеми з табуляцією та простором, а потім повернутися до звичайного дисплея.
retab
кожного разу, коли ви зберігаєте файл.