Замена " на ‘ и обратно одним кликом

в 19:42, , рубрики: vim, vimscript, метки: ,

Добавляем в .vimrc:

function! s:ToggleQuote()
    let q = searchpos("'", 'n', line('.'))
    let qb = searchpos("'", 'bn', line('.'))
    let dq = searchpos('"', 'n', line('.'))
    let dqb = searchpos('"', 'bn', line('.'))

    if q[0] > 0 && qb[0] > 0 && (dq[0] == 0 || dq[0] > q[0])
        execute "normal mzcs'"`z"
    elseif dq[0] > 0 && dqb[0] > 0
        execute "normal mzcs"'`z"
    endif
endfunction

nnoremap <silent>'  :<C-U>call <SID>ToggleQuote()<CR>

Если курсор переместить внутрь кавычек и нажать ', то кавычки поменяются на двойные/одинарные.

ps. скрипт использует vim-surround.

Автор: uzver

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js