vim의 커서에서 외부 명령의 출력을 추가


0

를 사용 :r !command하여 다음 행에 출력을 추가하십시오.

커서의 명령 출력을 같은 줄에 추가 할 수 있습니까?


이있는 경우을 xclip입력 :r !command|xclip -i한 다음 커서를 붙여 넣기 만하면됩니다. 모든 줄 바꾸기는 붙여 넣은 텍스트에 포함됩니다.
AFH

@AFH 좋은 해결 방법이지만, 내가 찾던 것이 아닌 것이 두렵습니다. 붙여 넣기 전에 삽입 모드에있을 때 가장 잘 작동한다고 덧붙이고 싶습니다.
Sathyam

추가 된 텍스트가 사용되는 메커니즘에 관계없이 삽입 / 덮어 쓰기 모드를 준수 할 것으로 기대합니다. 당신은 하나의 편지 (예와 스크립트를 사용하여 입력을 줄일 수 i포함) exec xclip -i만 입력 할 필요가 있도록 :r !command|i.
AFH

답변:


1

삽입 및 명령 행 모드에 대한 다음 맵핑은 어떻습니까?

" i_CTRL-R_`        Insert the output of an external command.
" c_CTRL-R_`
function! s:QueryExternalCommand( newlineReplacement )
    call inputsave()
    let l:command = input('$ ', '', 'shellcmd')
    call inputrestore()
    return (empty(l:command) ?
    \   '' :
    \   substitute(substitute(system(l:command), '\n\+$', '', ''), '\n', a:newlineReplacement, 'g')
    \)
endfunction
inoremap <C-r>` <C-g>u<C-r>=<SID>QueryExternalCommand('\r')<CR>
cnoremap <C-r>` <C-r>=<SID>QueryExternalCommand('\\n')<CR>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.