vim автоматически выравнивает комментарии конца строки в режиме вставки

Я не хочу автоматически выравнивать комментарии конца строки с vim.

У меня есть следующий фрагмент кода:

" This is a block
" with some comments
require 'some important lib' " important lib
require 'another lib' " another lib
require 'lib' "lib

Это безобразно Так что у меня есть следующая функция (в.vimrc)

inoremap <silent> " "<Esc>:call <SID>ealigneolcomment()<CR>a
function! s:ealigneolcomment()
  let p = '^.\+"\s.*$'
  if exists(':Tabularize') && getline('.') =~# '^.\+"' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
    let column = strlen(substitute(getline('.')[0:col('.')],'[^"]','','g'))
    let position = strlen(matchstr(getline('.')[0:col('.')],'.*"\s*\zs.*'))
    Tabularize/"/l1
    normal! 0
    call search(repeat('[^"]*"',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
  endif
endfunction

Это просто работает :Tabularize/"/l1 в текущей позиции курсора, когда я нажимаю ", Результат таков:

                             " This is a block
                             " with some comments
require 'some important lib' " important lib
require 'another lib'        " another lib
require 'lib'                " lib

Вместо этого я хочу получить такой результат:

" This is a block
" with some comments
require 'some important lib' " important lib
require 'another lib'        " another lib
require 'lib'                " lib

В основном я просто хочу выровнять комментарии конца строки. Комментарии к блоку должны быть оставлены нетронутыми. Есть ли способ вызова Tabular, чтобы получить желаемый результат? Или просто другой плагин vim?

0 ответов

Другие вопросы по тегам