Функции Vim для очистки скрытых персонажей - PullRequest
3 голосов
/ 16 февраля 2011

В настоящее время в моем файле .vimrc есть функция, которая очищает все завершающие пробелы при сохранении, сохраняя при этом мою позицию мыши.

fun! <SID>StripTrailingWhitespaces()
  let l = line(".")
  let c = col(".")
  %s/\s\+$//e
  call cursor(l, c)
endfun

autocmd BufWritePre *.sql,*.php :call <SID>StripTrailingWhitespaces()

Это прекрасно работает. Но я хотел бы добавить еще несколько вещей, например:
* Удалить возврат каретки
* Исправить отступ SP с последующим табуляцией

Я пытался добавить

% S / ^ M // е

к моей StripTailingWhitespaces() функции, но когда я сохраняю сейчас, vim сообщает мне

Нажмите клавишу ВВОД или введите команду для продолжения

Так что я думаю, что сделал что-то не так или забыл что-то. Любая помощь в выяснении этого? Спасибо

ОБНОВЛЕНИЕ: Все еще работаем над этой проблемой. Я попытался добавить <CR> в конце поиска в функции StripTrailingWhitespaces, а также в конце команды BufWritePre. Неудачно. Фактически, добавление этого дает мне много ошибок "Trailing Spaces". Есть еще предложения?

Если не один для устранения необходимости нажать клавишу ввода, как насчет поиска для исправления отступа SP, за которым следует TAB?

1 Ответ

1 голос
/ 17 февраля 2011

Я протестировал его с

fun! S()
  let l = line(".")
  let c = col(".")
  %s/\s\+$//e
  %s/^M//e   
  call cursor(l, c)
endfun

, и он отлично работал с Vim 7.3 (Примечание: ^ M вводится с помощью CTRL-V CTRL-M)

Итак, это выглядиткак будто вы не делаете ничего плохого и ничего не забыли.

Теперь, это не поможет вам двигаться дальше, не так ли?

Если у вас есть это сообщение, попробуйте :messages, возможно, это даст вам подсказку.

Кроме того, :help messages читает

  Press ENTER or type command to continue

This message is given when there is something on the screen for you to read,
and the screen is about to be redrawn:
- After executing an external command (e.g., ":!ls" and "=").
- Something is displayed on the status line that is longer than the width of
  the window, or runs into the 'showcmd' or 'ruler' output.

Итак, этот раздел, возможно, стоит прочитать (он длиннее, чем тот, который я вставил).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...