Как выровнять все эти косые черты в EOL - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь аккуратно выровнять все косые черты в конце этих строк (есть еще около 800 строк). Желательно, чтобы все слэши в столбце 80 (я использую vim). У кого-нибудь есть решение? Вот пример:

#define  TAILQ_INIT(head) do {               \
   (head)->tqh_first = NULL;           \
   (head)->tqh_last = &(head)->tqh_first;         \
} while (0)

Ответы [ 2 ]

2 голосов
/ 25 апреля 2019

Эта команда поможет, если ваши коды / текст:

  • используйте spaces вместо Tab,
  • длина текста до \s*\\$ <80 </p>

    %s/\v(.{-})\s*\\$/\=submatch(1).repeat(' ',79-len(submatch(1))).'\'
    

enter image description here

0 голосов
/ 25 апреля 2019

Если ширина вашего текста установлена ​​на 80:

set textwidth=80

В качестве основы вы можете использовать следующую функцию:

function! RightAlign(char)
    if strlen(a:char) > 1
        return
    endif
    let l:linelength = strlen(getline('.'))
    right
    let l:spaces = strlen(getline('.')) - l:linelength
    execute "normal 0|d" . l:spaces . "l"
    execute "normal f" . a:char
    normal P
end
funccommand -range -nargs=1 RightAlign <line1>,<line2>call RightAlign(<args>)

Используйте ее как следующую строку для выравнивания:

:RightAlign('/')

Аргумент - это первый символ, который вы хотите выровнять справа.

Он может быть вызван в диапазоне:

:'<,'>RightAlign '/'
:%RightAlign '/'

Если аргументесли вы передадите длиннее 1 символа, функция просто вернется.

Кроме того, она работает лучше, если вы используете пробелы, а не символы табуляции (для этого тоже потребуются некоторые изменения).

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