Как закомментировать / в абзаце хамла в vi? - PullRequest
1 голос
/ 07 февраля 2012

Я только начал изучать vi и до сих пор изучал только базовые команды перемещения / редактирования.Пока я читаю книгу, есть ли быстрый способ закомментировать абзац с -# в том же столбце с позицией курсора (соответственно с отступом строк)?

Допустим, у меня есть кусоккод:

%table
  - unless paginate(@clients).nil?
    %tr
      %th
        =t('index.name')
      %th
        =t('index.address')
      %th
        =t('index.phone')
    =render :partial => 'client', :collection => @clients

и я хочу закомментировать строки между - unless и =render :partial с -# в одном столбце, а затем иметь возможность комментировать их снова.Что это за команда?

Ответы [ 3 ]

2 голосов
/ 07 февраля 2012

В режиме выбора по блокам вы можете нажать I для вставки перед блоком и A для вставки после блока.

Установка 'relativenumber' (:set rnu) может помочь подсчитать строки.

Начните с CTRL-V , чтобы переключиться в режим блочного выбора, затем 8j, чтобы перейти вниз на восемь строк, затем I# Esc , чтобы вставить #.

Чтобы удалить его: d CTRL-V 8j удалит по блокам.

Предупреждение: если вы используете vanilla gvim.exe в Windows, вы, вероятно, активировали mswin.vim, который переопределяет CTRL-V, вместо этого используйте CTRL-Q (или отключите этот плагин)

1 голос
/ 12 марта 2012

Если вас меньше интересует, как и вы просто хотите, чтобы это работало, существует ряд плагинов, которые предоставляют (не) возможность комментирования для разных языков. Комментарий Tim Pope.vim - это то, что я только недавно начал использовать в качестве замены nerdcommenter .

Я только что установил его, чтобы не говорить ни о каких дефектах, но материал Тима Поупа (почти?) Всегда превосходен. С помощью плагина вы можете прокомментировать абзац Haml, выбрав визуальный блок и набрав \\\. Также требуются движения, например \\ap.

Ссылка:
https://github.com/tpope/vim-commentary

0 голосов
/ 10 февраля 2012

Если вы используете его часто, вы можете определить команду в вашем .vimrc

command -range=% C :<line1>,<line2>s/^/-#/

Затем в vi вы можете применить :<range>C обычным способом.Вы можете сделать это с помощью :10,20C или .,+10C.Вы можете использовать следующую команду для раскомментирования.

command -range=% D :<line1>,<line2>s/^-#//

Поскольку я использую vi для языков с различными типами комментирования, я также использую эти команды:

command -range=% -nargs=1 Ca :<line1>,<line2>s/^/<args>/
command -range=% -nargs=1 Da :<line1>,<line2>s/^<args>//

Позволяет вампросто сделайте :10,20Ca-#, где вы можете заменить -# выбранным методом комментирования.

...