ビューアで!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遅すぎるようです。 2つのボタンを押してマクロを有効にするステレオ機器があればいいようです。 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>

関連情報