Vi & Vim

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

2
複数行の検索と置換
検索を実行し、12000行のファイルで置き換えます。 具体的には、のオカレンスがブロックの^ SetFontSize 28後で^Hide次の^Hideorの前に存在する場合は^Show、に変更28し18ます。 元のファイルからの抜粋です。 Hide # Gear - Endgame ItemLevel >= 77 Rarity = Magic LinkedSockets >= 3 BaseType "Runic Hatchet" SetTextColor 140 190 255 # Magic Item Highlight SetFontSize 28 Hide # Gear - Endgame ItemLevel >= 77 Rarity = Magic Sockets >= 3 BaseType "Runic Hatchet" SetTextColor …
8 search  replace 

2
検索結果のリストを編集可能にするにはどうすればよいですか?
何回かありますが、私がする必要grepのためにsome_pattern、いくつかの中XHTMLのファイル(多くのA時間、指定したフォルダ内のファイル数が10K +を超えて)。 以前は、LugaruのEpsilon Programmer's Editorを使用しておりgrep、検索を呼び出して、一致するすべての行のリストをに表示するコマンドがありましたgrep-buffer。その後、ユーザは、(のようなコマンドを使用することができkeep-matching-lines、delete-matching-lines、sort-lines、uniqに等)grep-buffer。grep-bufferは編集可能であるため、必要に応じてgrep結果を後処理して望ましい形式に成形することができます。 しかし、それは数週間前でした!今回は、フルタイムのエディターとしてVimを使い始めました。私はそれらがVimの学習の障害になっているすべての可能な習慣をやめようとしています。したがって、現在、このような検索リストを取得する必要があるときはいつでも、次の方法で同じことを試みています。 :cd d:\test_files\ :cex [] | vimgrep /pattern/ *.xhtml :cope さて、これは私の目的をうまく果たしROますが、バッファはモードのままです。したがって、特別な後編集プロセスが必要になるたびに、のレプリカを準備quickfix-windowして、必要に応じて実行する必要があります。quickfix-window常に編集不可能です。 quickfix-window編集可能にする方法はありますか?結果は他のいくつかのコマンドを使用して1行で後処理できることは承知していますが、すべての検索リストを全体として表示する必要があります。それで初めて、次の手順を判断できます。 で適用できる微調整はありますvimrcか?何か不足していますか?私のエラーまたは仕事を成し遂げるためのその他のアプローチを指摘していただければ幸いです。

1
現在の演算子に依存するテキストオブジェクトを定義する
テキストオブジェクトにその演算子を認識させることができるかどうか、私は興味があります。特に、オペレーターに応じて異なる動作が必要なLaTeX環境用のテキストオブジェクトを作成しています。たとえば、次のLaTeXスニペットを考えてみます。 \begin{example} Hello world \end{example} ここではdie、行ごとにコンテンツを削除するのが最も便利ですが、cie「Hello world」は削除されますが、インデントは保持されます。つまり、 \begin{example} | \end{example} |カーソルはどこですか。

1
行の長さが異なるブロックを貼り付けるときに余分なスペースを避けます
私はテキストを持っています var1=a var2=aaa var3=aaaaaa some text... "" ... some text... "" ... some text... "" ... a上の3行の-部分を最後の3行の引用符に貼り付けたい。結果は次のようになります some text... "a" ... some text... "aaa" ... some text... "aaaaaa" ... Vimブロック選択を使用して、各行の終わりまでCtrl+Vブロックを選択してa使用$し、それを最初の行に貼り付けると""、間違った結果が得られます。 some text... "a " ... some text... "aaa " ... some text... "aaaaaa" ... ご覧のように、vimは余分なスペースを追加することで貼り付けたテキストを整列しますが、私の場合は不要です。 Vimがこれらのスペースを挿入する理由と、余分なスペースなしでブロックを貼り付けるにはどうすればよいですか?



1
ファイルの最初と最後の5行?ファイル固有のスペル無視リストに使用しますか?
噂によるとvim、ファイルの最初の5行または最後の5行にコマンドを配置することは可能です。しかし、Googleではこれを見つけることができませんでした。どんなリードもいただければ幸いです。 この機能を使用して、単語リストにファイル固有の追加を定義することは可能でしょうか。 感謝を編集!modelineそれはです!提案されている方法でスペルチェックに使用できますか?

1
構文ファイルから重要なキーワードをエスケープする方法は?
私は構文ファイルでこの行に出くわしました。それは機能しません: syntax keyword Type Transparent これはtransparent、Vimにとって重要なキーワードであるという事実と関連があると思います。 それをエスケープし、実際の単語をTransparent他のすべてのType単語と同じようにファイルに色付けするにはどうすればよいですか?私のような他の厄介なキーワードaccross 1日つまずく場合はどうkeyword、syn、matchなど?

2
現在のファイルの関数の概要?
さまざまなソースファイル(C、Rubyなど)で作業しているときに、関数を探し回っていることがよくあります。現在のファイルの構造をリストする自動生成されたHUDを作成する方法はありますか?NERDTreeがさまざまなファイルにリンクする方法と同様に、ファイルのさまざまな部分にリンクするのは素晴らしいことです。または、ここのスクリーンショットのサイドナビゲーションに似ています:https ://stackoverflow.com/questions/16895610/gen-file-missing-incomplete-in-eclipse これがプラグインまたは何かとして存在しないと仮定すると、人々は通常どのようにこのようにファイルをナビゲートしますか?

4
挿入略語のバックスペース
機能させるには、略語を空白で区切る必要があります。たとえば、私が持っているiab fo FOOBAR場合、タイプしwhatfoても省略形はトリガーされません。これにはいくつかの明らかな賢明な理由があります。 ただし、iabをトリガーしてから戻ってスペースを削除しなくても、接尾辞として使用できる略語が必要です。これは可能ですか?例えば、iab fo <backspace>FOOBAR。

2
コードをナビゲートしているときにvimがランダムに点滅するのはなぜですか?
# vim --version VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 31 2015 23:36:07) # cat /root/.vimrc map <F2> :w\|!sh % <cr> map <F3> :w\|!bash % <cr> map <F4> :w\|!python % <cr> map <F5> :w\|!python % &<cr> highlight RedundantWhitespace ctermbg=DarkBlue guibg=red match RedundantWhitespace /\s\+$\|\t/ syntax on highlight Comment …

1
あふれんばかりのCtags-重複タグの問題
ここにファイルがあります-- ChipBooter.cpp私のプロジェクトで(この質問に関連していないいくつかの詳細を省略してください): class ChipBooter { public: void Boot() { this->DpDetect(); } void DpDetect() {} } ヒットg<C-]>しての定義にジャンプするとDpDetect、Vimは一致するタグが重複するリストを表示しました。 # pri kind tag file 1 F C f DpDetect OMU/src/boot/src/ChipBooter.cpp class:ChipBooter void ChipBooter::DpDetect() 2 F C f DpDetect OMU/src/boot/src/ChipBooter.cpp class:ChipBooter void ChipBooter::DpDetect() これは同じ定義です! この問題は、ヒットするたびに発生しg<C-]>、常にリストの長さが2倍になります。 もっと詳しく あふれんばかりのCtagsバージョン:5.8。Vimのバージョンは7.3 これは私のディレクトリ階層の視覚的表現です: Source `---tags | `---OMU `---src `---boot …
8 ctags 

2
ggをgに再マッピングする方法は?
通常モードg combinationsではgg、以外は使用しません。g一度押すだけで十分になるようにするにはどうすればよいですか? nnoremap g ggコマンドの継続を3秒ほど待機させます。マッピング解除g、私はにマップすることはできませんので予めことは、どちらか動作しません。gg私はアンマップ場合g。私はそうではないすべての組み合わせのマッピングを解除する必要がありggますか?

3
すべてのプラグインが読み込まれない「ライトモード」を導入するにはどうすればよいですか?
私のVim設定には、現在のプロジェクトの処理、タグのビルドなどを試みるプラグインが含まれています。これは、Vimでの毎日のプログラミングに非常に役立ちますが、次のようないくつかの簡単な編集にVimを使用する場合に面倒です。 git commitメッセージを編集します。 Ctrl+xCtrl+ezshまたはbash と入力したときにシェルコマンドを編集します。 等 --nopluginsサラウンドやイージーモーションなど、一部のプラグインをクイック編集モードで利用したいので、どちらも好きではありません。 したがって、いくつかの「ライトモード」(または「クイックモード」)が必要です。プラグインの一部はバイパスされますが、すべてではありません。 私の最初のアイデアは、vimscriptで解析する特別なコマンドライン引数を用意することでしたが、すばやくグーグルすると、vimscriptでは現在不可能であることがわかります(ちなみに悲しいことですが)。 2つ目のアイデアは、vimの実行時に次のように環境変数を設定することです。 $ VIM_LIGHT_MODE=1 vim これはgitで動作します: $ git config --global core.editor 'VIM_LIGHT_MODE=1 vim' 私がしなければしかしEDITOR='VIM_LIGHT_MODE=1 vim'、およびタイプCtrl+xCtrl+eのシェルでは、それは動作しません。 edit-command-line:13: command not found: VIM_LIGHT_MODE=1 次に私はこれを試しました:EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"が失敗しました: vim': -c: line 1: syntax error: unexpected end of file (正直に言うと、これは特に奇妙に見え$EDITORますが、使用方法が正確に誤解されているようです。誰かがここで何が起こっているのか説明してもらえたらうれしいです) 他のすべての実験も失敗しました。 私が考えることができる唯一のハックはservername、次のようないくつかを設定することです: $ vim --servername VIM_LIGHTWEIGHT_MODE そしてv:servername、vimscript …

3
変更後の作成タイムスタンプを保持
vim作成タイムスタンプを変更せずにファイルを変更したい。 ドキュメントはそのような可能性について何も言及していないようです。 スワップ/リカバリ機能をオフにせずにこれを実現したいのですが。 1つの代替方法は、時間をどこかに保存し、終了時に上書きすることだと思います。
8 buffers  save 

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