Как вы используете функцию быстрого исправления Vim? - PullRequest
103 голосов
/ 17 ноября 2009

Я довольно новый пользователь Vim, и я обнаружил, что его кривая обучения довольно крутая (по крайней мере, для меня). Я только что установил этот скрипт vim для проверки ошибок JavaScriptLint, которая показывает ошибки в окне быстрого исправления vim после сохранения буфера.

Тем не менее, я не знаю, что делать дальше .. Как мне «прокрутить» все ошибки? Как закрыть окно быстрого исправления? Как заставить его проверять наличие ошибок после внесения изменений в мой код?

Я просмотрел документы по быстрому исправлению vim, но количество команд огромно, и я не могу найти то, что хочу. Любая помощь будет оценена.

Дополнительный вопрос: есть ли способ проверить javascriptlint на наличие ошибок js для кода, находящегося в файле .html?

Спасибо!

Ответы [ 8 ]

126 голосов
/ 17 ноября 2009

Существует множество команд для быстрого исправления, как вы сказали, но я склонен обнаруживать, что использую только небольшое их подмножество:

:copen " Open the quickfix window
:ccl   " Close it
:cw    " Open it if there are "errors", close it otherwise (some people prefer this)
:cn    " Go to the next error in the window
:cnf   " Go to the first error in the next file

Я склонен использовать это с :make и :vimgrep, поэтому я не могу комментировать проверку пуха Javascript, но это должно дать вам кое-что для начала.

Что касается общего использования JavascriptLint, я не программист javascript, но похоже, что скрипт предоставляет функцию под названием "JavascriptLint", поэтому, если вы хотите вызвать ее вручную, вы можете использовать :call JavascriptLint(). Тем не менее, он работает с копией файла на диске, поэтому его сначала нужно сохранить. Если (и только если) командная строка jsl работает с html-файлами, вы сможете использовать :call JavascriptLint() для html-файла для проверки внутреннего javascript. Вы также можете сделать:

autocmd BufWritePost,FileWritePost *.html call JavascriptLint()

, чтобы автоматизировать это. Если jsl не поддерживает html-файлы, то (если не считать исправления приложения или обращения к автору с просьбой изменить его), это, вероятно, безнадежная причина ...

50 голосов
/ 14 марта 2013

Самый простой способ навигации по списку быстрых исправлений (или к списку местоположений) - это плагин unimpaired .

Как только окно быстрого исправления заполнено, [q и ]q идут вперед и назад (соответственно) в списке быстрого исправления. [Q и ]Q переходят в начало и конец (что особенно удобно, если в списке есть только один элемент; это заставляет vim жаловаться на [q и ]q). Итак, рабочий процесс:

  1. Запустить любую команду, которая заполняет список быстрых исправлений
  2. Введите [Q, чтобы перейти к первому элементу
  3. Прокручивайте последующие элементы (если есть) с помощью [q и ]q

Если вы используете Syntastic, вы получите список местоположений вместо списка быстрых исправлений. Нет проблем; просто используйте [L, ]L, [l и ]l таким же образом.

unimpaired имеет множество других удобных сопоставлений - [e и ]e "пузырьковые" линии вверх и вниз, [<Space> и ]<Space> вставляют пустые строки выше и ниже и т. Д. Я никого не удивил упоминал об этом здесь раньше; это, вероятно, потому что он не существовал до января 2010 года, хотя вопрос был задан в 2009 году.

19 голосов
/ 17 ноября 2009

Вы также можете использовать :cc 2 (или любое другое число), чтобы перейти, в этом случае, ко второй ошибке в окне быстрого исправления. Навигация с помощью :cn, :cc 4 и т. Д. Поместит курсор на соответствующую строку.

18 голосов
/ 26 марта 2015

Добавьте следующие две строки в ваш файл .vimrc:

map <C-j> :cn<CR>
map <C-k> :cp<CR>

Теперь вы можете перемещаться по ошибкам, используя ctrl-j и ctrl-k, которые имитируют стандартные команды перемещения вверх и вниз j и k.

8 голосов
/ 05 мая 2011

Лучшим способом интеграции проверки синтаксиса JavaScript является использование Syntastic Vim plugin , который использует location-list Vim (который является параллельным). в окно quickfix ).

Я написал ответы для на этот вопрос и на этот вопрос , объясняя, как это сделать, а также как получить просмотр исходного кода / список тегов для Vim с использованием сообщества jshint.com (что намного лучше, чем JSLint IMO) и Mozilla DoctorJS (ранее jsctags ).

6 голосов
/ 17 ноября 2009

Окно быстрого исправления в основном работает как любое другое окно vim: j вниз по строке, k вверх по строке, cn для перехода к следующей ошибке / предупреждению и т. Д.

эксперимент!

5 голосов
/ 12 сентября 2014

Возможно, этой опции не было, когда этот вопрос был написан (или, может быть, я смущаюсь, потому что в моем .vimrc есть что-то, что делает это возможным), но когда я получаю Quickfix List, я просто перемещаюсь по нему с помощью j и k затем нажмите <CR> (т. Е. Клавишу Enter), чтобы перейти к этому месту в файле.

Затем, чтобы вернуться к Quickfix List, я набираю Ctrl + W j для "перейти вниз по окну", и я вернулся.

Наконец, когда я закончу, я просто наберу :q, как если бы я закрыл любое обычное окно.

0 голосов
/ 12 марта 2019

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

Каждая группа из 3 файлов ниже представляет набор результатов быстрого исправления, например, из вимгреп. все меньше и меньше для прохождения исторических наборов результатов. enter image description here

...