Рекурсивная идентификация строк длиной более 80 символов в Emacs - PullRequest
4 голосов
/ 28 октября 2010

Поскольку может быть хорошей идеей иметь строки, длина которых не превышает 80 символов в файлах кода , каков наиболее эффективный способ рекурсивной идентификации этих строк в существующем проекте с использованием Emacs?

UPDATE:

Используя предложение Трея, я сейчас использую следующий код:

(defun find-long-lines (base-dir)
  "Recursively look for lines longer than 80 characters files"
  (interactive "DPath:")
  (grep-compute-defaults)
  (rgrep "^................................................................................." "*" base-dir))

Прекрасно работает в сочетании с пробельным режимом .

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

Я не могу опередить конкретные решения EMACS, но вы можете немного изменить команду, чтобы включить имена файлов (и печатать меньше).

rgrep "^.\{81\}" . -n (include line numbers)


rgrep "^.\{81\}" . -c (summary view per file)

Кавычки не обязательны для интерактивной подсказки rgrep.

rgrep RET ^. {81} RET тип файла RET путь

3 голосов
/ 28 октября 2010

Вы можете использовать igrep-find и использовать регулярное выражение, которое соответствует 81 (+) символам, например:

M-x igrep-find ^.................................................................................. RET /path/to/area/to/search/* RET

А затем вы получаете буфер в режиме компиляции, который позволяет вам легко переходить к каждой из ошибочных строк (либо щелчком мыши, либо Cx ` или Mx next-error ).

В качестве альтернативы вы можете использовать встроенный M-x grep-find и использовать то же регулярное выражение.

Чтобы ввести 81 ., введите C-u 81. .

И, если вы хотите, чтобы все это содержалось в одной команде (которая запрашивает путь к файлам), вы можете использовать это:

(defun find-lines-longer-than-80 (files)
  "Recursively look for lines longer than 80 characters files"
  (interactive (list (igrep-read-files)))
  (igrep igrep-program "^................................................................................." files igrep-options))

В Emacs Wiki есть несколько других советов для Поиск длинных строк , включая несколько вариантов выделения строк длиной более 80 символов при посещении файла.

...