Как быстро показать / скрыть вертикальную линию в текущем курсоре в VIM? - PullRequest
0 голосов
/ 12 января 2020

У меня есть это в .vimr c

set colorcolumn=80                                                              
highlight ColorColumn ctermbg=235 guibg=#2c2d27 

Так что в vim постоянно есть вертикальная линия.

Иногда мне нужно быстро показать и скрыть другую вертикальную линию, чтобы увидеть, какой-то текст выровнен или нет в текущем курсоре.

Как я могу это сделать?

Если я сначала узнаю номер столбца текущего курсора и использую :set colorcolumn=48, вертикальная линия переместится к столбцу 48, тогда мне придется снова использовать :set colorcolumn=80, чтобы переместить его обратно.

Просто интересно, есть ли другой аккуратный способ сделать это?

1 Ответ

1 голос
/ 12 января 2020

Попробуйте:

set cc=80
hi ColorColumn ctermbg=235 guibg=#2c2d27
nno <silent> <key> :<c-u>let &l:cc = &l:cc =~# ',' ? 80 : '80,'.strchars(matchstr(getline('.'), '.*\%'.col('.').'c.'), 1)<cr>

В сопоставлении замените <key> на последовательность клавиш, которую вы хотите использовать:

nno <silent> <key> :<c-u>let &l:cc = &l:cc =~# ',' ? 80 : '80,'.strchars(matchstr(getline('.'), '.*\%'.col('.').'c.'), 1)<cr>
             ^^^^^

Когда вы нажимаете вашу последовательность клавиш, Vim должен выделите второй столбец в вашей текущей позиции. При повторном нажатии Vim должен прекратить выделять этот второй столбец.

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