Я хочу выполнить команду "yiw:s/\<<C-r>"\>/<C-r>"/g<Left><Left>"
по последовательности клавиш. Так что я сделать отображениепоследовательность клавиш vim как аргумент функции
nnoremap <F7> yiw:s/\<<C-r>"\>/<C-r>"/g<Left><Left>
Это отображение скопировать слово под курсором, то строка: s/\ < «> /»/г «(где» заменяются скопированной слова) появляется в команде строка и курсор в командной строке находятся в конце оператора замены.
Я также хочу сохранить позицию курсора перед этой командой и восстановить ее после.
function! SafeCommand(cmd)
let line = line('.')
let col = col('.')
// execute cmd here
call cursor(line, col)
endfunction
Как это сделать?
1) вы сопоставляются '' f' затем 7', не ''. 2) если вы хотите сделать ': s /../../ g', вам нужно поставить' 'там 3), даже если был' ', левый левый тоже не имеет смысла, потому что после подстановка, ваш курсор будет в начале этой строки. 4) Я не понял, что вы пытаетесь сделать ... замените слово под курсором тем же словом? можете ли вы немного объяснить это в своем вопросе? –
Kent
после запуска вашей отображаемой команды нажатие клавиши Ctrl-O может вернуть вас в прежнее положение. Кроме того, вам не нужно копировать текущее слово, в командной строке ' (: h )' будет скопировать слово под курсором. вы все равно хотите эту функцию? –
Kent
Thx для советов. Но да, я все еще хочу знать, как написать такую функцию. – user14416