Vi & Vim

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

5
現在の内部ブロックの右端まで削除します
次のようなコードがあるとしましょう(|カーソル位置を表します): func1(x|, func2(), y); 取得したい: func1(x|); カーソルの位置から現在の内部ブロックの右端の前の位置までのコードを削除する方法はありますか? 私は私が一緒に行くことができることを知っていますdt).が、私はそれを何と混ぜる方法があるのだろうかと思いdi)ます。

2
autocmdでイベントをANDする方法はありますか?
autocmd 2つのイベントでをトリガーしますが、通常行われる方法ではありません。つまり、いずれかのイベントが発生した場合にをトリガーしautocmdます。両方のイベントが発生した場合にトリガーします。 例: 通常の方法 autocmd BufWrite,BufRead *.c *.py *.h :call StripTrailingWhitespaces() このコードは、BufWriteまたはBufReadでStripTrailingWhiteSpaces()を呼び出します 私は次のようなことをしたいです: autocmd Filetype c,cpp,python AND BufWrite :call StripTrailingWhiteSpaces() 言い換えればautcmd、ファイルタイプがc、cpp、pythonのいずれかである場合にトリガーし、このバッファーへの書き込みが行われます。 どんな助けも大歓迎です。
21 autocmd 

5
Gitブランチを切り替える最も簡単な方法
現在、私は逃亡者を使ってgitに関連するほとんどすべてを管理していますが、利用可能なブランチをすばやく視覚化し、切り替える良いワークフローを見つけることができません。 私ができることは:Git checkout <branch-name>、問題はファイル名とブランチの両方をオートコンプリートすることであり、ブランチリストを好むことです。

4
挿入モードで<CR>を元に戻す
挿入モードでは&lt;CR&gt;、誤ってヒットすることがあり、バックスペースを複数回押す必要があります(インデントによって異なります)。 例えば &lt;div&gt; &lt;p&gt; This is some text []&lt;/p&gt; &lt;/div&gt; カーソルが[]あり、ヒット&lt;CR&gt;: &lt;div&gt; &lt;p&gt; This is some text []&lt;/p&gt; &lt;/div&gt; ここで、前の行に戻るためにバックスペースを2回押す必要があります(このケースはそれほど悪くはありませんが、インデントがあまりありません)。 もっと良い方法を知っていますか?

2
プラグインキーマッピングを再定義するにはどうすればよいですか?
定義したキーマッピングを無効にするメカニズムを提供しないプラグインをインストールしました。&lt;leader&gt;ccプラグインによって定義されたマッピング()の1つを自分の目的のために再定義したいので、次の行を次の行に入れようとしました.vimrc。 noremap &lt;leader&gt;cc echo "my purpose" しかし、これは機能せず、&lt;leader&gt;ccまだpluginコマンドを実行しています。 プラグインによって定義されたマッピングをオーバーライドするようにマッピングを定義するにはどうすればよいですか?

1
vimで:g /^$/,/./- j(複数の空白行を1つの空白に減らす)はどのように機能しますか?
Vim Regular Expressionsの記事で、Oleg Raiskyは複数の空白行を単一の空白に減らすために次のコマンドを提供しています。 :g/^$/,/./-j 誰かがこれがどのように機能するか説明してもらえますか? :gコマンドと正規表現を知っています。しかし、この部分/,/./-jが何をするのか理解できませんでした。


8
vimrcファイルを折りたたむベストプラクティスはありますか
私は最近、自分のvimrc長さが400行を超えていることに気付きました(これはIMOで長すぎて削減しようとします)。私は知らなかった)。 折り畳み方法を設定しようとしましたindentが、結果が好きではありませんでした(ほとんどが私のvimrcインデントされていないため、面倒でした)。 私はまた、設定しようfoldmethodとexprしてsyntaxますが、私は適切に何を折り畳むことができませんでした。 ここではdiff、折り畳み方法として使用することは適切ではないようです。(または、使用方法がわからなかった場合) だから今のところ、ファイル内で「うるさい」とわかったマーカーとマーカーのmarkerために、私を完全に満足させない方法を使用しています。"{{{"}}} だから私は適切に折り畳むことに関するベストプラクティスまたは一般的なガイドラインがあるかどうかを知りたいvimrcです。 注1:私たちは皆知っているように、SOはフォーラムではなく、個人的な意見を収集するように作られていません。それは私が探しているものではありません:もちろん、いくつかの人々が好みを持っていると思いますが、なぜ使用するのか知りたいですマーカー(たとえば)は、インデントを使用するよりも読みやすくします。 注2:また、私の主な目標は、自分vimrcをできる限り明確にすることですvimrc。 編集1:私vimrcはすでにセクション(および場合によってはサブセクション)にすでに細分化されていることを正確にすべきでした。 一般的なオプション プラグイン(各プラグインとその構成のサブセクションを含む) マッピング ナビゲーション(サブセクションも含む) 色 等... そして、それが折り畳みのことを考えさせたのはこの構造です。ある時点で興味のあるセクションだけを出力できるのは、とても便利なことだと思います。 編集2:vimrcいくつかのファイルのサブディビジョンに言及した回答は有効ですが、個人的な好みとして、ドットファイルを含むgitリポジトリで1つのファイルのみを維持する方が簡単だと思うので、折り畳みを使用します。それは個人的な好みに過ぎず、このアプローチも使用できることは承知していますが、折りたたみを使用したいと思います。
21 vimrc  folding 


5
.vimrcおよびプラグイン用のGitHub
多くの人が.vimrcをGitHubに保存して、新しいマシンでの作業を簡単に行えるようにしていることを知っています。ただし、使用するプラグインはすでにgitリポジトリであるため、プラグインを含めることには問題があります。.vimrcとインストールされる可能性のあるプラグインの両方を追跡するリポジトリを作成するにはどうすればよいですか?

2
vimからbashスクリプトを実行する
私はbashスクリプトにvimを使用しています。問題は、新しいファイルを作成し、実行可能にし、実行してから削除したくないことです。1回だけ使用されるスクリプトを意味します。 たとえば、vimを開いて次のように入力します。 #!/bin/bash ll | while read line do echo $line done このファイルは保存せず、bashスクリプトを単純化するためにvimを使用しています。!vim 経由でbashコマンドを実行できることを知っています。しかし、バッファ内にあるすべてを実行するのはどうでしょうか?

2
vimrcを分割することは可能かつ有用ですか?
タイトルに従って、vimrcファイルをいくつかのサブファイルに分割することは可能ですか?1つのことに関係する設定のグループごとに個別のファイルを保持しますか?この事は何でも、設定のユーザー定義のグループのいずれかの種類があります。例えば、 [更新しました] Python(-mode)関連の設定をすべて保持しvimrc.python-modeますか? vimのカレンダーユーティリティの設定を保持しますvimrc.calendarか? 色設定を別のファイルに保存しますか? キープマッピング別のファイルに(ショートカット別名を?)?
21 vimrc  filetype 

3
一部のファイル拡張子が同義語であることをvimに伝えるにはどうすればよいですか?
.cppファイル内のC ++コードを編集しますが、テンプレートコードは.tccファイルに入ります。このようなファイルを開くと、構文の強調表示は使用できません。set syntax=cppでaa tpp.vimファイルで試しましたが~/.vim/ftplugin/、何もしませんが、エディターでは動作します。特定の拡張機能を他の拡張機能と同義語としてvimに処理させる方法はありますか?

4
新しくインストールしたかのように、すべてのユーザー設定をVimに無視させるにはどうすればよいですか?
動作が個人設定の影響を受けないようにするため、ユーザーがインストールしたすべての設定ファイルを無視する方法でVimを起動します。すぐに。 これはFAQで対処されており、次のコマンドでVimを起動することが答えであることが示唆されています。 vim -u NONE -U NONE -N -i NONE これによりほとんどの方法で取得runtimepathできますが、オプションには~/.vim、特にが含まれています~/.vim/after(たとえば、その後ファイルタイプの検出をオンにしてファイルタイプを変更~/.vim/after/syntax/the_relevant_filetype.vimすると、コードが実行されます)。 起動時に次のコマンドを呼び出すことで、この特定の問題を回避できます*: :set runtimepath-=~/.vim :set runtimepath-=~/.vim/after ...しかし、私はわからない: これは堅牢なソリューションです。ユーザー設定を有効にできる唯一のパスはこれらですか?他に考えていないことはありますか? 望ましい結果を達成するためのより良い方法があります。 * --cmdまたは-u vimrcシェル引数を使用するか、単にそれらを手動で入力します。 編集:これは私が修正しようとしている問題の種類の特定の例です。(私は解決策が他の考えられる問題を修正したいのですが、まだ気付いていないかもしれません。): コンテンツを含むファイル〜/ .vim / after / ftplugin / c.vimを作成します。 noremap i :echom "This is not default behaviour"&lt;CR&gt; これで、ユーザーがインストールした構成のうち、無視したいものがあります。FAQで提案されたソリューションをテストしましょう。 次のコマンドでVimを実行します: vim -u NONE -U NONE -N -i NONE 次のコマンドを入力します。 …
21 startup 

3
vimの分割セパレーターは列全体の幅より小さくできますか?
タイルウィンドウマネージャー(素晴らしい)+ターミナルマルチプレクサー(tmux)+ vim内で分割します。私はウィンドウ装飾がまったくないので、プログラムの内容がそれを与えない場合、それらの間の視覚的な分割はまったくありません。とにかく複数のモニターを使用し、画面ごとにタスクをグループ化するため、このパラダイムに非常に満足しています。2つのウィンドウが並んでいる理由がなければ、そもそも存在しません。 ただし、これにより、視覚的に最も明らかな分割が意味的に最も重要でない視覚的な不協和音が少し生じます。 Xorgウィンドウ‹|› window =何もありません Tmuxペイン‹|›ペイン= 1ピクセルの分割線 Vim分割‹|› split = 1文字幅の色付き列 以下は、ウィンドウ、ペイン、vimの分割ごとに1つずつ表示するサンプルです。 フル解像度バージョンまでクリックしなくても、表示される白い分割線は画面上で最も重要な分割ではないvimペインです。(vimセッションの右側にある灰色の列は、実際には80番目の列のハイライトであり、どのような種類の仕切りでもないことに注意してください。 スプリットに描かれたキャラクターを変更する方法、または配色のコントラストを下げる方法を知っています。私がしたいのは、tmuxと同じ分割バーを使用することです。分割バーは1つではなく列の間に描画されるため、幅を占有しません。これは端末ベースのvimで可能ですか?グヴィム?ネオビム?視覚的に目立たないセパレーターを作成するために、仕切り柱を完全にオフにすることはできますか? PS視覚的に類似したセパレータを使用する理由は理にかなっています。これは、同じキーバインディングを使用してtmuxペインとvimスプリット間を移動するためです。同じキーがそれらの間をシームレスに移動します。視覚的な境界も同じ場合にのみ意味があります。

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