Vi & Vim

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

2
[count] <Cx>に先行ゼロを強制する方法を教えてください。
環境 私vifmはファイルマネージャーとして使用します(これはここではトピック外ですが、読み続けます)。これにより、vimバッファー内のファイル名を編集できます。 私がイライラしていることに気付いた1つの問題は、先頭にゼロを付け続けたい番号付きファイルです(例:)movie0001.webm。vimで適切にフォーマットすることができません。 質問 私はvim含むバッファがあります: mov70.webm mov71.webm mov72.webm mov73.webm mov74.webm mov75.webm mov76.webm mov77.webm mov78.webm mov79.webm そして、カーソルmは最初の行のから始まります。次に、VGすべてにマークを付けて、次の69&lt;C-x&gt;ように変換します。 mov1.webm mov2.webm mov3.webm mov4.webm mov5.webm mov6.webm mov7.webm mov8.webm mov9.webm mov10.webm しかし、私は実際にこれに到達したいと思います: mov01.webm mov02.webm mov03.webm mov04.webm mov05.webm mov06.webm mov07.webm mov08.webm mov09.webm mov10.webm 私が試したこと 先頭にゼロが付いている数値の問題は、数値がvimとして扱われるoctalためnrformats、空の文字列に変更しました。 :set nrformats= それでも、それは助けにはなりませんでした。:h nrformats何も役に立たずに探し回ってみました。

1
行が長すぎて表示できないときに文字を表示するようにvimを構成するにはどうすればよいですか?
行が長すぎてウィンドウに収まらない場合に通知を受け取りたい。 今私はこれを持っています~/.vimrc: set wrap let &amp;showbreak = ' +++ ' これを次のように変更したいと思います。 set nowrap let &amp;somesetting = ' &gt; ' これによりsomesetting、vimに&gt;任意の行の右マージンにaを置くように指示すると、長すぎて完全に表示されません。 私は誓ったvimがこれを行うことができましたが、設定を見つけることができません。

1
最後から2番目(またはそれ以前)の変更を繰り返す方法はありますか?
この.コマンドは、最後のプリミティブアクションをすばやくすばやく実行するのに非常に役立ちます。ただし、その間に行ったその他の変更はこれを上書きします。 "2バッファに常に最後のヤンクが含まれるのと同様に、マクロとして定義することなく古い変更を呼び出して繰り返す方法はありますか?

1
vimdiffで一致しない次の行に移動する
vimdiffで次の一致しない行に移動する方法はありますか?「次の変更された行に移動する」ではなく、現在のファイルの次の一致しない行に移動します。 私の場合、私は2つの大きなファイルを比較しようとしています。そのうちの1つは実際には他のサブセットです。私がしたいことは、大きなファイルで欠けている小さなファイルの行があるかどうかを確認することです。大きなファイルにカーソルを置いて、次の「行方不明」の行の注釈に直接ジャンプできるはずだと考えました。 問題の現在のファイルがソートされているので、たぶん "comm"コマンドラインユーティリティを使用して行方不明の行を見つけることができますが、vimdiffで簡単に実行できる方法があるかどうか、特に行がソートされていません。

2
同じコード行をX回貼り付けますが、そのたびに行の1ワードを変更するにはどうすればよいですか?
私はHTMLリストを作成していて、10個のリストアイテムを自動的に貼り付けることができるようにしたいのですが、アイテムのテキストだけが変更されます。 PHPを使用してこれを実現し、レンダリングされたHTMLコードをコピーするだけで済みますが、そのステップをスキップしてVimから直接実行する方法があれば、時間を大幅に節約できます。

1
scrollbindまたはdiffが原因ではない同期スクロールをオフにします
2番目のウィンドウでファイルを開いてスクロールを開始すると、同期的にスクロールすることにしたファイルがあります。scrollbindおよびdiffに設定されていoffます。(:set scrollbind?印刷noscrollbindして:set diff?印刷nodiff。) 他に何を試すことができますか? 私はneovimを使用しています。

2
正規表現でネストされた一致するグループ
次の方法でpython式を変換するときの一般的な使用例があります。 value 1 value 2 value 3 に ['value 1', 'value 2', 'value 3'] 最も簡単な方法はマッピングを使用することですが、このタスクの代わりに使用したかったのです。 これまでのところ私は得ました: s/\(.*\n\)\+/[&amp;]/g その結果 [value 1 value 2 value 3 ] この昇給私が一致することができるようにしたいので、質問、\(.*\)ではなく\n、使用する内部のマッチの結果'...'。 これを行う方法を知っていますか?


4
カーソル線セット付きのSpecialKey前景色
ではこのQ&A、のためのハイライトグループが存在することが観察さだCursorLineNrときカーソル行の行番号に適用され、set cursorlineオンになっているが。 カーソルラインを使用すると、別のハイライトグループの色も変わることに気づきましたSpecialKey。 set list listchars=tab:\|_,trail:- 私にとってのこの問題は、暗い背景(したがって、暗いカーソルライン)を使用していることです。私の通常のSpecialKey設定も非常に暗いので、listcharシンボルはわずかにしか見えません。しかし、cursorline それらを使用すると白になり、trailcharが実際にヒットしたことと区別がつかなくなり-ます。トレイル文字は、行の終わりにスペースを入力するたびに使用されるため、これは小さな問題ではありません。通常、最初から最後まで行を入力するには、作業中にダッシュのタイプミスと簡単に区別できるいくつかのスペースが必要です(または、ダッシュを意図した場合はスペースのタイプミス)。 他のハイライトグループは影響を受けていないようなので、などCursorLineNrが適用されていると思われますが、hiリストを見ると適切なものは何もありません。 これが何か知っている人はいますか?さらに良いことに、カーソル線のハイライトグループを変更する方法を知っている人はいますか?

1
cindentを使用する場合、開き角括弧に続く行のインデントを制御するものは何ですか?
JavaScript用に独自のインデントファイルを作成しようとしています。JavaScriptのデフォルトのインデントファイルは、最小限の変更でcindentをオンにします。私はそれをベースとして使用しています。 Vim 7.3 for OSX El Capitanでは、配列を入力すると、デフォルトで次のようになります。 var test = [ 1, 2, 3 ]; また、JavaScriptは合法ではありませんが、コンマを使用しないと少し異なる動作になることに気づきました。 var test = [ 1 2 3 ]; 7.4では、上記の2つの例を入力すると、期待どおりの結果が得られます。 var test = [ 1, 2, 3 ]; var test = [ 1 2 3 ]; ただし、開いた角括弧の直後にいくつかの文字を含めると、それは強打から戻ります。 var test = [1 2, 3, 4 ]; …

2
キーマッピングnnoremap <SCk>:w <CR>が機能しないのはなぜですか?
1回のキーストロークでバッファをディスクに書き込むことができるようにしようとしています。 (サイドノート:理想的には、これをすべてのモードで動作させたいのですが、とりあえず、最初は通常モードで動作させようとしているだけです。) Vim wikiにはこう書かれています... 以下のような象徴的な表記法を使用して制御文字を表すVimのサポート&lt;F1&gt;、&lt;C-W&gt;、&lt;C-S-F1&gt;、など そしてまた... Ctrlキー修飾子を持つキーは、&lt;C-key&gt;表記法を使用して表されます。たとえば、Ctrl-Rを使用して表され&lt;C-R&gt;ます。Shiftキー修飾子を持つキーは、&lt;S-key&gt;表記法を使用して表されます。たとえば、Shift-F2を使用して表され&lt;S-F2&gt;ます。Altキー修飾子を持つキーは、&lt;A-key&gt;または&lt;M-key&gt;表記を使用して表されます。1つ以上のキー修飾子を組み合わせることができます。たとえば、を表すCtrl+Shift+F3にはを使用できます&lt;C-S-F3&gt;。 これを私の中に入れればうまくいくと言っているよう.vimrcです... nnoremap &lt;S-C-k&gt; :w&lt;CR&gt; しかし、効果はありません。リロード.vimrcしてshift+ control+ を押すと、下部にメッセージが表示されKません[File] written。 私もこれを試しましたが、option+ Kも効果がありませんでした... nnoremap &lt;M-k&gt; :w&lt;CR&gt; エラーメッセージはありません。 OS Xを使用しています。 更新 わかりました、これを試してみました... inoremap &lt;M-s&gt; Hey whats up 次に、挿入モードにしてoption+ を押すとS、Vimが出力します... ß OS XはVimがキーストロークを受け取る前にキーストロークをインターセプトしますか?これが機能しないのはなぜですか? もしそうなら、別のコンピュータを購入する以外にそれをやめる方法はありますか?



1
NeoVimはマークダウンの編集時に*文字を非表示にします
私はtpopeのvim-markdownプラグインを使用してマークダウンファイルを編集しています。どういうわけか、neovim はandとcharsを非表示にし_、*charの量に応じてその間のテキストをイタリックまたはボールドに変更します。これらのイワナを見たいです。文字を非表示にしないようにneovimまたはvim-markdownを構成するにはどうすればよいですか?(注、vim-markdownのヘルプを探しましたが、何もありません)

2
不明な `_vimrc`または` vimscript`ファイルを使用するのはどのくらい安全ですか?
この質問をここで行うべきかどうかはわかりません。ほとんどすべての言語で、マルウェアが存在します。同じことが当てはまりvimscriptますか? 仮定しvim、高いシステム権限で実行されています。新しいvimユーザーがプラグインまたは見栄えのするvimrcファイル(つまり、他のスクリプト言語でのいわゆる悪意のあるスクリプト)を使用してシステムを破壊する可能性はありますか? 未知のスクリプトファイルを実行する前に、新しいユーザーが対処できる方法は何ですか?スクリプトを無効にすることは、そのための明白な解決策であることを知っています。しかし、新しい学習者にとっても非常に便利なプラグインの数は非常に多くあります。 繰り返しになりますが、この質問はここには当てはまらないかもしれませんが、セキュリティも全体像の非常に重要な部分だと思います。 これに関するいくつかのリソースまたは情報をvim指すと、私のような新しいユーザーにとって非常に役立ちます。

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