То, чтобы заставлять табулирование выглядеть по-другому, чем просто пробел

При использовании определенных платформ как Платформа Зенда (PHP), только мудро использовать множественное число для классов таблицы и исключительный для классов строки.

Так говорят, что Вы создаете $users объекта таблицы = новые Пользователи () и объявили, что класс строки Пользователь, которого Вы будете в состоянии позвонить новому Пользователю () также.

Теперь, если бы Вы используете исключительный для имен таблиц, необходимо было бы сделать что-то как новый UserTable () со строкой, являющейся новым UserRow (). Это выглядит более неуклюжим мне, чем просто наличие объектные Пользователи () для таблицы и Пользователя () объекты для строк.

9
задан Alex Bolotov 28 July 2009 в 07:47
поделиться

6 ответов

Я использую что-то вроде этого:

set list listchars=tab:»·,trail:·,precedes:…,extends:…,nbsp:‗

Требуется Vim7, и я не уверен, насколько хорошо это будет отображаться в браузере, потому что он использует некоторые забавные символы Unicode. Хорошо использовать некоторые необычные символы, чтобы отличить вкладку от того, что вы, возможно, набрали сами.

Помимо отображения вкладок, полезно показывать пробелы в конце строк, чтобы вы знали, что их нужно удалить (они раздражают ).

16
ответ дан 4 December 2019 в 06:41
поделиться

Используйте параметры списка и listchars , примерно так:

:set list
:set listchars=tab:>-
5
ответ дан 4 December 2019 в 06:41
поделиться

Многие другие упоминали параметры 'listchars' и 'list', но просто чтобы добавить еще одну интересную альтернативу:

if &expandtab == 0
    execute 'syn match MixedIndentationError display "^\([\t]*\)\@<=\( \{'.&ts.'}\)\+"'
else
    execute 'syn match MixedIndentationError display "^\(\( \{' . &ts . '}\)*\)\@<=\t\+"'
endif
hi link MixedIndentationError Error

Это будет смотреть на текущую настройку 'expandtab' (т.е. есть жесткие табуляции или пробелы, изображающие табуляцию) и будет выделять все, что выглядит как правильный отступ, но имеет неправильную форму. Они предназначены для работы, глядя на позиции табуляции, поэтому табуляции, используемые для отступа, за которыми следуют пробелы, используемые для простого выравнивания (не кратного 'tabstop'), не будут выделены как ошибочные.

Доступны более простые варианты: если вы просто хотите выделить все вкладки в неправильном файле ярко-красным цветом (или любым другим цветом вашей ошибки), вы можете сделать:

syn match TabShouldNotBeThereError display "\t"
hi link TabShouldNotBeThereError Error

или если вы хотите, чтобы пробелы в начале строки считались ошибкой, вы можете сделать :

syn match SpacesUsedForIndentationError display "^ +"
hi link SpacesUsedForIndentationError Error

Еще несколько мыслей, чтобы добавить к этому миксу ... подробнее здесь:

:help 'expandtab'
:help 'tabstop'
:help 'listchars'
:help 'list'
:help :exe
:help let-option
:help :hi-link
:help :syn-match
:help :syn-display
7
ответ дан 4 December 2019 в 06:41
поделиться

Кроме того, при вырезании и вставке текста полезно отключить отображение табуляции и пробелов. Вы можете сделать это с помощью

:set list!

и снова включите его, повторив команду.

2
ответ дан 4 December 2019 в 06:41
поделиться

Если вы сделаете следующее:

:set list

, тогда все символы TAB появятся как ^ I , а все конечные пробелы появятся как $ .

Используя listchars , вы можете контролировать, какие символы использовать для любых пробелов. Итак,

:set listchars=tab:...

в сочетании с : set list делает вкладки видимыми как ... .

3
ответ дан 4 December 2019 в 06:41
поделиться

glenn jackman спросил, как вводить символы (я предполагаю, что он имел в виду такие символы, как «» »).

Брайан Карпер предлагает метод, использующий индексный номер символа в Юникоде. Поскольку многие из этих характерных знаков являются орграфами [: help digraphs], вы также можете использовать ярлык CNTL-k, который, как правило, легче запомнить.

Так, например, вы можете сгенерировать "» "в Insert режима, дважды набрав CNTL-k и символ ">".

2
ответ дан 4 December 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: