뷰어에서!gvim 현재 줄을 실행하는 방법은 무엇입니까?

뷰어에서!gvim 현재 줄을 실행하는 방법은 무엇입니까?

암호find-xargs(less)-gvim

%http://unix.stackexchange.com/a/277889/16920
find . -name "*.tex" -exec grep -il "agent" {} + | less -s -M +Gg

산출

./InfectiousDiseases/1.4.2016.tex
./InfectiousDiseases/2.11.2015.tex
./InfectiousDiseases/21.4.2016.tex
...

Less에서는 다음 명령을 사용합니다.!gvim

  • 하단의 상태 표시줄에서 현재 줄 번호를 설정할 수 있습니다. 창 상단에 있습니다.
  • 예상 출력은 파일입니다../전염병/1.4.2016.tex새 창의 현재 행.
  • 현재 출력이 실패했으며 vim의 파일이 비어 있습니다.

Muru는 Xargs에 대한 제안이 적습니다.

|X xargs gvim

이것은 대략

|Xcommand 현재 위치와 X 표시 사이의 파이프 파일을 쉘 명령으로 표시합니다.

...

무루의 조언find-vim-gvim

find . -name "*.tex" -exec grep -il "agent" {} + | vim -

나는 이 작업을 성공적으로 수행했거나 :tabe <cfile>커서 :vs <cfile>를 현재 줄에 유지했습니다. 성공했지만 !gvim <cfile>목록 보기가 Press ENTER or type command to continue마음에 들지 않는 다른 보기로 이동합니다. 목록 보기로 보기를 유지하고 싶습니다. 현재 줄에서 많은 외부 창을 빠르게 시작할 수 있는 바인딩/매크로가 있다면 좋을 것입니다.

:nnoremap gff :silent! exec "!gvim " shellescape('<cfile>') <bar> redraw!<cr>

gff현재 커서 위치를 누르면 성공적으로 작동합니다. 시퀀스 바인딩이 gff너무 느린 것 같습니다 . 버튼 두 개를 눌러 매크로를 활성화하는 스테레오 장비가 있으면 좋을 것 같습니다. CTRL-1, CTRL-ESC 또는 CTRL-F1이 모두 가능하다는 것을 기억합니다.

...

<C-1>Vim에서는 스테레오 키 바인딩이 불가능하지만 일부 Gvim에서는 불가능하기 때문에 스테레오 키 바인딩 에 몇 가지 문제가 있습니다 . OS X 특정 부분을 확장했습니다.여기Apple Stackexchange에 있지만 Vim Stackexchange가 더 잘 알고 있다고 언급했습니다.여기.


뷰어의 현재 줄에서 gvim을 실행하는 방법은 무엇입니까?

답변1

문제 해결 방법 [더 이상 사용되지 않음]

그럼 가장 먼저 해야 할 일은

find . -name "*.tex" -exec grep -il "agent" {} + | vim -

.vimrc에서 vi.stackexchange의 매크로는 gff여러 시각적 선택 창을 엽니다.

% https://vi.stackexchange.com/a/7627/2923
if has("win32") || has("win64")
  :vnoremap gff :<C-U>'<,'>g/^/silent! exec "!START /B gnvim " . shellescape('<cfile>') <bar> redraw!<cr>
else
  :vnoremap gff :<C-U>'<,'>g/^/silent! exec "!gnvim " . shellescape('<cfile>') . " &" <bar> redraw!<cr>
endif

도전

더 나은 솔루션

제안 사용여기탭을 이용하면 됩니다.vimrc

nnoremap <leader>gf :silent! execute "tabe " . expand('<cfile>') <bar> redraw!<CR>

function! OpenSelectionAsTabs() range
    let tabnr = tabpagenr()
    for line in range(a:firstline, a:lastline)
        execute "tabedit " . getline(line)
        execute "tabp"
    endfor
endfunction

nnoremap <leader>gf :'<,'>call OpenSelectionAsTabs()<CR>
vnoremap <leader>gf :call OpenSelectionAsTabs()<CR>

관련 정보