Vi & Vim

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

3
vimtutorの後の​​Vimの学習
Vimを学習するための次のステップは、完了した後vimtutorですか?YouTubeで動画を視聴し、オンラインでチュートリアルやSEでの質問/回答を読んで、Practical Vimを読むのに忙しくしています。 他に利用可能なリソースはありますか?実際にVimを練習して使用することは、それをただ見たり読んだりするだけでなく、学ぶための良い方法です。組み込みのヘルプシステムを使用してVimを学習する最良の方法に関する提案はありますか? PS:SOに関するこの質問はトピックから外れているため閉じられましたが、そこにある回答のいくつかは有用に見えます。 PPS:私は何年も前にvimを使っていましたが、Org-ModeのためにEmacsに移行し、現在vimに戻っています:)

2
Vimの構文強調表示は、Javaのラムダ(->)をエラーと見なします
Vimを使用してJava 8でプログラムしているのですが、構文の強調表示に問題があります。 Java 8の新機能はラムダサポートです。これにより、矢印演算子が作成されます->。Vimは、これを* .javaファイルの有効な演算子として認識しません。そのため、この演算子を明るい赤で強調表示して、「構文エラー」に注意を促しています。(もちろん、これは本当に有効な構文です。) この問題を回避するために、許可された演算子のVimの「辞書」を更新したり、構文の強調表示を修正したりする方法はありますか? 最初の2行の:version状態: VIM-Vi IMproved 7.4(2013年8月10日、2014年1月2日19:39:32にコンパイル) 含まれるパッチ:1〜52

4
通常モードで単語をヤンクされた単語に置き換える方法
単語を以前にヤンクした別の単語に置き換える必要があるとき、私は通常、私にとって不自然なワークフローを使用します。 このテキストがあるとしましょう: foo bar buzz そして、私はヤンクfooしてbar、以前にヤンクしたものに置き換えたいと思います。 ヤンクした後foo、次のオプションが表示されます。 オプション1 カーソルを合わせbar持ちますw 入れfoo目の前にbarしてP b残りのにカーソルを合わせてbar、単語を削除しますde オプション2 カーソルをバーに置く w de消去に使用bar レジスタ0の内容を入れて"0P(私は消去するのでbar、fooシンプルにもうアクセスできませんp) どちらの方法も私には複雑すぎるようで、このアクションを達成するためのより効率的な方法があると確信していますが、その方法を見つけることはできません。このアイデアは、deleteアクションとputアクションを1つだけにまとめるか、少なくとも削除した単語をyankレジスタに保持することを避けて、必要な単語をsimpleで挿入できるようにすることpです。 また、私はトリガーされRた置換モードを知っていますが、ヤンクされたものを置くことはできません。 TL; DR:単語をヤンクレジスタの内容に置き換える方法は?

6
どうすればVimで本当に楽しいことができますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 ViおよびVim Stack Exchangeで話題になるようにします。 閉じた3年前。 Vimが大好きです。私はそれを使って一生を過ごします:仕事では、Vimでコードを開発し、それで設定ファイルを編集し、それでメールを書きます。自宅では、todoリストとバケットリストを作成します。暇なときに本を書きます。私はVimについてのミートアップに行き、それを使用することを知っているすべての人を説得しようとします(残念ながら、私のおばあちゃんは、友人に手紙を書くためにそれを使用することに同意しません)。 私たちの愛する編集者へのこのすべての愛で、私は大きな問題に直面しています:通常構成された人間として、私は時々リラックスして楽しみたいです。当然、敬なエディターでそれをしたいのですが、どうすればそれができるのかわかりません。もちろん、私は何時間も自分の配色をカスタマイズし、私が長い間見ている再帰的なマクロを書くことに費やしましたが、6、7時間後にはそれはもはや楽しくありません。 だから私はあなたに仲間のVimmersを呼んでいます:Vimでどうやって楽しむことができますか? 編集この投稿は明らかにエイプリルフールでした(もちろん、私のおばあちゃんはVimを使うのが大好きです)。回答とコメントをありがとうございました。本当に素晴らしいアイデアがいくつか提案されています!
25 vimscript 

7
テキストブロックをより高速に移動する方法
テキストまたはコードのブロックを通常コピーする方法は次のとおりです。 ビジュアルモード(V)でブロックを選択し、d;で削除し ます。または、1行だけの場合は、を使用します dd。 私はテキストになりたい場所に移動し、私は違いを覚えて、あまりにも愚かだpとP、私は時間の約50%、この権利を取得するので、。(間違った場合は、もう一度やり直してください)。 場合によっては、インデントの調整が必要なため、Vもう一度ビジュアルモードに移動し て同じブロックを再選択し、>または <を使用して修正します。 もっと簡単な方法はありますか?一部のエディターでは、テキストブロックをそのまま「ピックアップ」し、移動できることがわかりました。Emacsの例を次に示します(ただし、他のエディターでも見ました)。 それとも別の(さらに良い)方法がありますか?

1
Vim関数をサイレントに呼び出す
カーソルを現在の行の最初の文字に移動する小さなVim関数を作成しました。カーソルがすでに最初の文字にある場合、カーソルは代わりに最初の列に移動します。 " Jump to first character or column noremap H :call FirstCharOrFirstCol()<cr> :function! FirstCharOrFirstCol() : let current_col = virtcol('.') : normal ^ : let first_char = virtcol('.') : if current_col == first_char : normal 0 : endif :endfunction この関数をサイレントモードで呼び出すにはどうすればよいですか?むしろ、「:call FirstCharOrFirstCol()」はステータス行に表示されませんでした。単に変更するだけnoremap H :silent call…では十分ではないようです。
25 vimscript 

4
vimスニペットプラグインの違いは何ですか?
vimには多数のスニペットプラグインがあります:ultisnips、snipmate、xptemplate、neosnippetなど。 それらにはすべて長所と短所があり、多かれ少なかれ依存関係があります。これまで、私はアルティスニップを使用してきましたが、完全に満足することはありませんでした。 プラグインマネージャについて非常に興味深い完全な質問があるので、スニペットプラグインについて同様の説明をすることは非常に役立つと思います。 ここには良い出発点になる可能性のあるリストがありますが、私たちのコミュニティが書くことができるいくつかの完全で明確で正確な答えは非常に便利です。

5
VimとVIの最大の違い
今日、私はVimの代わりにViを試してみることにしました。それがどれほど違うかを見たかったのです。私はまったく大きな違いに気付きませんでした。私が気づいた最大のこと-- INSERT --は、挿入モードに入ったときにViが言っていないことであり、いくつかの小さなインターフェイスの違いがありました。 ViとVimの最大の違いは何ですか?

1
JSONファイルでテキストを折りたたむ方法は?
大きなJSONファイルがあります。すべてのファイルを一度に処理するのは簡単ではありません。JSONファイルのセクションで作業できるように、いくつかのコンテンツを折りたたみたいです。 例えば: { obj: {+}, // folded section obj:{ // unfolded section } } VimでJSON構造を折り畳むことは可能ですか?
25 gvim  folding 

4
Ctrl-Wを使用せずにVimでスプリットを操作するにはどうすればよいですか?
私の端末では、Ctrl+ を入力することはできませんW。これは、端末タブを閉じるためのショートカットだからです。 分割を使用するのが好きですが、を使用しないと分割を行う方法が見つかりませんC-W。これにより、タブを使用せざるを得ませんでした。これはgt、gTまたは#gtで数字を切り替えることができるためです。 mouse=a私の端末はそれをサポートしていないため、どちらも使用できません。 Ctrl+ WコンボなしでVimでスプリットを操作するにはどうすればよいですか?

1
<Esc>を無効にしますが、<C-[>
挿入モードから切り替えるために私は慣れてい&lt;Esc&gt;ます。今、私は&lt;C-[&gt;代わりに自分を再訓練したいと思っています &lt;Esc&gt;。そのため&lt;Esc&gt;、再トレーニングを支援するために無効にする必要があります。 問題は :inoremap &lt;Esc&gt; &lt;Nop&gt; も無効にします&lt;C-[&gt;。vimの場合、それらは同じもののようです。 一方を無効にするには他に方法はありますか?

6
行の順序を逆にする方法は?
最初の行が最後に表示され、最後の行が最初に表示されるように行の順序を逆にするにはどうすればよいですか?(バッファー内のすべての行、アドレス範囲、または行単位の視覚モード選択である可能性があります。) 変身したい rat ox tiger ⋮ dog pig に pig dog ⋮ tiger ox rat などの外部コマンドに頼ることなくtac。

5
元に戻すのみのウィンドウ
ウィンドウ内に複数の分割がある場合を考えます。vimを使用すると、現在の分割をすばやく「最大化」して、を介してウィンドウ全体を占有できます&lt;C-W&gt; o。 vimが前に存在していた分割を「記憶」し、実行後にこの状態に戻る方法はあり&lt;C-W&gt; oますか? 編集:明確にするために、サードパーティのプラグインを使用せずにこれを行う方法を探しています。
24 split 

1
非インタラクティブにファイルを編集する方法(パイプラインなど)
パイプライン入力で渡されたファイルを非インタラクティブな方法でvimを使用して編集するか、インプレースでファイルを編集します(と同様sed)。 以下を使用したいくつかの例sed: $ sed -i'.bak' s/foo/test/g file # Edit file in-place. $ cat file | sed s/foo/test/g # Parse file in pipeline. しかし、私はここで読むことができました: sedあるS tream ED itor、ないファイルエディタが。それにもかかわらず、どこでも人々はファイルを編集しようとするためにそれを乱用する傾向があります。ファイルは編集しません。 次に、インプレース編集(-i)などの一部のオプションは移植可能です。 vimで同じ機能をどのように実現できますか?


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