Vi & Vim

テキストエディタのviおよびVimファミリを使用している人のためのQ&A


2
同じスニペットに複数のトリガーを使用するにはどうすればよいですか?
私は別のトリガを与えたいスニペットを作ったので、代わりに言っているtrigger私もでそれをトリガーにしたいですmyothertrigger: snippet trigger "just an example" my text ... endsnippet スニペットをコピーする代わりにこれを行う簡単な方法はありますか? 編集:明確にするために、私はUltiSnipsを使用していますが、より良いプラグインがある場合は、それを調査する可能性があります。

1
「virgin」モードでのvim / gvimの実験
時々、インターネットで見つけたトリックを試したいと思います。これをvim(guiトリックの場合はgvim)で、virginモードで、つまり、すべての〜/ .vimrcをロードせずに試すと役立つことがよくあります。 これを効率的に行うためのヒントはありますか?



1
カスタムの強調表示ルールはどこに属しますか?
たまに、デフォルトの構文強調表示の色とスタイルを自分の好みで上書きしたい。 これを行う最も適切な方法は、自分のカラースキームを作成することだと思います。しかし、いくつか質問があります。 特定の言語で特定の構文グループにハイライトを設定したい場合、これは私のカラースキームに属しafter/syntax/[filetype].vimますか、それとも配置した方が良いですか? highlight jsAssignExpIdent cterm=bold gui=bold 私が取り組んでいる言語がロードされるため、colorschemeにあいまいな言語固有のルールを配置するのは少し奇妙に見えますが、構文ファイルに強調表示ルールを配置することはさらに悪いようです。 時々、特定の言語の新しい構文規則を作成しますafter/syntax/[filetype].vim。他のユーザーがこれらの拡張機能を使用したい場合に備えて、一般的なデフォルトのハイライトグループにリンクするデフォルトのハイライトルールを提供するのが適切でしょうか?別のユーザーがそのハイライトの色を上書きしたい場合、どうすればいいですか? ::::: after/syntax/asm.vim ::::: syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/ highlight default link asmHexNumber Number

7
vimで現在の行に一致する行を検索する方法
通常はで単語を検索しますが:/string、現在の行全体を検索する必要がある場合は、その方法を調べます。 event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 たとえば、現在の行全体を含むテキストの場合cursorとline 1同じように検索する方法が現在ある場合:/。カーソルは次に一致するline 4にジャンプし、再びline 7



2
崇高なテキストからのホット終了機能を実装するvimプラグインはありますか
Hot exitは、Sublime Textエディターのキラー機能の1つです。開いているファイルの変更を気にすることなく、いつでもエディターを閉じることができます。問題なく閉じるだけです。もう一度STを起動すると、開いて編集したすべてのファイルは、閉じる前と同じ状態になります vimで同じことをする方法はありますか?
11 save 

1
挿入モードに入るにはどのようなオプションがありますか?
私は、挿入モードがどこから始まるかaというシステムがあることに気づくことなく、挿入モードに入るのが常でした。 aカーソルを行の最初の文字の後に置くとイライラすることがありましたが、それでもなお、現在のカーソル位置の後に挿入モードに入ります。 次に、を使用して行の最後A、またはを使用して現在の行の下に挿入モードに入ることができることに気付きましたo。 通常モードで挿入モードに入る方法は何ですか?それらの違いは何ですか?

2
VimはBibTeXファイルの末尾のコンマを覚えるのにどのように役立ちますか?
私はかなりの数のBibTeXファイルを編集しており、最後のコンマを定期的に忘れています。 例えば: @Book{cooke2015british, author = {Cooke, Lez}, title = {British Television Drama}, publisher = {Palgrave on behalf of the British Film Institute}, year = {2015}, keywords = {about} address = {London}, isbn = {978-1844576234} } の後keywords = {about}にコンマを追加するのを忘れたことがわかります。これは、デバッグに時間を費やす必要があることを意味します。Vimに思い出させる方法はありますか?ちなみに、私はbib_autocomp.vimプラグインを持っています...

1
原因不明のgqインデントの問題
このテキストをVimに挿入します。 t tttt ttttttttt tt tttt tt ttt tttttt-tttt-ttttttt tttttttttttttttttttttttttttttttttttttttttttttttttttttt ttttt ttt ttt tttttt ttttttt tttt ttttttt: ttttttt tt ttttttt, ttttttt tt tttttt, tttttt tt ttttttt, tttttt tt tttttt ttt. t tttttt tt ttt (tttt) ttttttt-tttttt-tt-ttttttt tttttt for the "tttttt in ttttttt" part of the issue (in the previous week …

2
swpファイルに保存されていない変更が含まれているかどうかを検出する方法
gvim(v.7.4.488)を使用してソースコードを編集するとき、vcsにいくつかの変更をコミットしたい(Ubuntu linuxのコマンドラインからgit 2.1.4を使用しています)。 git --status 変更したファイルを示します。ただし、.*.swp現在表示されているバッファーのvimも表示されます(ファイルに未保存の変更が含まれている場合、および編集されたファイルが.*.swp-file と同じ場合)。もちろん、gitはこれらのファイルを無視することも、vimがスワップファイルを別の場所に保存することもできます(vim.wikiaまたはstackoverflowのこの質問を参照)。しかし、保存.*.swpされgit --statusていない変更が含まれているときに-filesが表示されるのは気に入っています。これは、自分が思っているのとは異なる状態でファイルをコミットしていることを示しているからです。 保存したファイルが-file と同じ.*.swpであるgit --statusときに表示される-files の誤検知を回避し.*.swpながら、コミットするファイルがvimで編集しているものとは異なる状態であることを確認できますか? .*.swpディスク上のファイルとvim内のファイルが異なる場合、-files のみを持つことは可能ですか? 保存されていないファイルを検出する他の方法はありますか? @elyashivと@VanLaserのコメントを組み合わせると、スワップファイルが未保存のファイルを意味するかどうかを検出するよりも簡単な方法になります。 gitに。*。sw [po]ファイルを無視させないでください。 コミット時に、ファイルがgit --status明らかになった場合はviで.*.sw[po]a :waを実行します。そして、 追加してコミットします。
11 git  swap-file 

2
Vimscriptでデリゲートを使用したり、関数を引数として渡すことはできますか?
私はvimscriptを学習するための小さなプラグインを作成しようとしています。私の目標は、選択したテキストを処理し、それを結果に置き換える関数をいくつか作成することです。スクリプトには次の項目が含まれています。 テキストを処理する2つの関数:パラメーターとして文字列を取り、元のテキストを置き換えるために使用する文字列を返します。現時点では2つしかありませんが、しばらくするとさらに増える可能性があります。 選択されたテキストを取得する関数:これは、最後の選択をヤンクしてそれを返すだけです。 ラッパー関数:処理関数を呼び出し、その結果を取得し、古い選択をこの結果に置き換えます。 今のところ、ラッパー関数は次のようになります。 function! Wrapper() " Get the string to insert let @x = Type1ProcessString(GetSelectedText()) " remove the old selection normal gvd " insert the new string normal "xp endfunction そして、3行目を次のように置き換える2番目のラッパーを作成する必要があります。 let @x = Type2ProcessString(GetSelectedText()) ラッパー関数に、実行し、3行目でジェネリックコールを使用するためのProcess関数を含むパラメーターを与えたいのですが、今のところcall、たとえば次のようなさまざまな方法を試してみました。 let @x = call('a:functionToExecute', GetSelectedText()) しかし、私は本当に成功し:h callていませんし、デリゲートトピックについてはあまり役に立ちませんでした。 ここでそれを要約すると、私の質問です: すべての処理用のラッパー関数を1つだけ作成するにはどうすればよいですか? vimscriptでデリゲートとして機能するものはありますか? デリゲートが存在しない場合、私がやりたいことを行う「良い」方法は何でしょうか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.