Расположение с отступом комментариев для соответствия коду в энергии

Проблема в том, что вы добавляете строку, а не число. Оператор + в JavaScript имеет множественную семантику, и как только один операнд является строкой, он будет выполнять конкатенацию строк.

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

44
задан Dave Sherohman 11 October 2008 в 00:15
поделиться

4 ответа

Похоже, что Вы кодируете в Perl. Удостоверьтесь, что следующее установлено в Вашем .vimrc:

filetype plugin indent on
syntax enable

Они скажут Vim устанавливать тип файла при открытии буфера и настраивать добавление отступа и подсветку синтаксиса. Никакая потребность явно установить smartindent начиная с включенного файла синтаксиса Perl Vim не установит его (и никакие другие определенные для Perl настройки) автоматически.

<час>

Примечание: наличие любого set smartindent и/или set autoindent в ~/.vimrc может препятствовать решению работать. Если Вы имеете проблемы, ищете их.

45
ответ дан Alan W. Smith 23 September 2019 в 11:37
поделиться

Я думаю, что "smartindent" разработан для C, таким образом, это думает, что "#" является запуском директивы препроцессору вместо комментария. Я не знаю решения для него, кроме того, если Вы введете пространство, затем клавиша Backspace, тогда "#", то это не сделает этого.

7
ответ дан Paul Tomblin 23 September 2019 в 11:37
поделиться

Эта проблема может быть решена путем помещения следующего в _vimrc файле.

set cindent
set cinkeys=0{,0},!^F,o,O,e " default is: 0{,0},0),:,0#,!^F,o,O,e

[еще 111] информация ...

10
ответ дан Ben Hoffstein 23 September 2019 в 11:37
поделиться

Если вы используете Параметр отступа "smartindent", решение вашей проблемы объясняется в документации VIM ": help smartindent":

  При вводе '#' в качестве первого символа в новой строке отступ для 
этой строки удаляется, в первом столбце ставится '#'. Отступ 
восстанавливается для следующей строки. Если вы этого не хотите, используйте это сопоставление 
: ": inoremap # X ^ H #", где ^ H вводится с помощью CTRL-V CTRL-H. 
При использовании "> > ", строки, начинающиеся с '#', не сдвигаются 
вправо. 
 

Я использую" smartindent "и могу подтвердить, что описанное исправление работает для меня. Он обманывает VIM, заменяя нажатие клавиши "#" на ввод "X", затем нажимая клавишу Backspace, а затем снова вводя "#". Вы можете попробовать это вручную и убедиться, что при этом не запускается автоматическое вытеснение.

17
ответ дан 26 November 2019 в 22:06
поделиться
Другие вопросы по тегам:

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