2015-06-03 2 views
0

Я новый (bie) в vim. У меня есть следующее отображение комментировать мой код Python:vim comment/uncomment with one mapping

nmap cc 0i#<ESC> 

Я хотел бы иметь такое же отображение раскомментировать строку. Я думаю, мне нужна функция для проверки первого символа строки. Вы знаете, как я мог бы сделать трюки?

спасибо.

Редактировать: Это не то же самое, что и question, интересно, как это сделать без плагина.

+1

Пожалуйста, найдите плагин для комментариев (http://vimawesome.com/?q=comment). Также имейте в виду, что 'cc' уже используется Vim для изменения всей строки (так же, как' S'). См. ': H cc'. –

ответ

2

Вы не должны пытаться реализовать это (плохо) самостоятельно; это решаемая проблема, и вы можете выбрать из нескольких хороших плагинов. См. Comment Lines according to a given filetype для списка плагинов.

Как опыт обучения, попытка сопоставления в порядке. Вот один подход использует :help map-expr, чтобы проверить линию на наличие комментария первого:

nnoremap <expr> cc getline('.') =~# '^#' ? '0x' : '0i#<ESC>' 

PS: You should use :noremap; он делает отображение неустойчивым к переназначению и рекурсии.

1

Существует plugin. Это очень хорошо, и он работает на многих языках.