Vi & Vim

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

2
Vimのスペルチェックを「スマートクオート」で使用するにはどうすればよいですか
「通常の」ストレートクオートがあります: '" そして、角度のある「スマートクォート」があります: ''“” Vimのスペルチェックは「ストレート」な引用符では機能しますが、エンジェル引用符では機能しないため、これは「間違った」と見なされます。これは ... Monty Pythonの そうではありませんが。 フォントが違いを示さない場合のスクリーンショット: どうすれば修正できますか?私はそれを両方のバリアントで機能させることを望みます(それはそれだけです)。

2
vimの起動時にコマンドを実行する方法
メソッドツリーを表示するpythonのプラグインをインストールしました。起動時にツリーを開きたいので、.pyファイルを開くたびにボタンを押す必要はありません。しかし、私はこのコマンドが.pyファイルに対してのみ実行されることを望みます。これが私のvimrcピースの様子です。 nmap <F8> :TagbarToggle<CR> 起動時に.pyファイルに対してのみこのコマンドを実行する方法はありますか?

2
「filetype plugin on」は実際には何をしますか?
ftplugin.vimファイルをロードすることを理解していますが、実際には何をしますか?(ファイルタイプに応じて)オプションを設定しますか? vimrcの最初にこの行を含める場合 filetype plugin indent on そして、私はこの行の後にいくつかのオプションを設定しました(autoindent、smartindentなど)、それらは混乱しますか?ファイルタイププラグインまたはインデントファイルの影響を受けるオプションを知るにはどうすればよいですか?
11 filetype 

1
マクロで挿入モード補完を使用するにはどうすればよいですか?
ランダムな単語のリストをすばやく生成するマクロを定義しようとしています。 マクロでこれを次のようなリストに変換したい a b c d e これに arezzo bywords czars détente eyrie これまでのところ: カーソルを文字の上に置く a マクロの記録を開始 qq a 挿入モードに入る <C-x><C-k> - perform dictionary completion on the character before cursor - in this case the lettera` <C-p>表示される補完リストの最後の項目を選択しますarezzo。私のシステムではその単語です。(注意:完了時にこのように動作するために必要な設定にlongest含めました:)。'completeopt'<C-p>'set completeopt=longest,menuone,preview' <C-y> 完了を受け入れる ^[^[ 挿入モードを終了 j 次の行に移動して、次の行で同じ操作を実行する準備ができました q 録音を停止 マクロを作成して手順を手動で実行すると、すべてが正常に動作しますが、マクロを実行すると、コマンドラインで次のようなメッセージが点滅します。 辞書ファイルのスキャン そして、何も起こりません。マクロのコマンドのみjが実行されます。つまり、カーソルは行の下に移動しますが、完了コマンドは実行されません。 マクロで挿入モードの補完を使用することは可能ですか?可能な場合、どうすれば実行できますか?

1
cnextおよびcpreviousループを最初に戻す
:cnextクイックフィックスリストの最後にいるときに実行すると、エラーメッセージが表示されます E553: No more items そして何も起こりません。これの代わりに:cnext、リストの最後に入力すると、vimが最初のquickfixエントリに循環して戻ります。この動作のためにvimを構成することは可能ですか?
11 quickfix 

4
vimコマンドの結果をシェルに出力する方法
シェル(bash):scriptnamesにいて、出力を確認したいが、vimを起動したくない、または別のファイルにエコーしたいとします。 だから私は実行します vim +scriptnames すべてのスクリプトが表示されますが、それをシェルの標準出力にエコーするにはどうすればよいですか?
11 bash 

1
Vimscriptで現在のウィンドウ/バッファ/タブページを取得します
Pythonでは、vimモジュールを使用する場合、現在のwindow / buffer / tabpageを取得するのは非常に簡単です。 current_win = vim.current.window current_buff = vim.current.buffer current_tabpage = vim.current.tabpage 私の質問は、純粋なVimL / Vimscriptでこれをどのように実行し、どのタイプのオブジェクトが返されるかです。これはwindows.txt(:h windows)のどこにも見当たらないようです。

3
ハイライトされた文字列を選択的に変更するにはどうすればよいですか?
検索して、変更したい文字列をハイライトしました。ここで、強調表示されたテキストのみを置き換えたいと思います。n検索文字列の次のインスタンスに進むために使用しています。私は何かができると思っていましたがciw、ハイライトされたテキストだけでなく単語全体が変更されました。 私は精通して:%s/old/new/gいますが、すべてのインスタンスを変更したくありません。代わりに、カーソルを各インスタンスに進め、それを変更するかどうかを決定します。
11 search  replace 

3
端末上のvimのドキュメント(:help)のリンクをたどる問題
与えられたリンクをたどることができないため、ターミナルでvimのドキュメントを読むのに問題があります。 私は引用します: 件名にジャンプ:カーソルをタグ(| bars |など)に合わせ、CTRL-]を押します。 問題は、「+」と「]」が同じボタン上にあるスペイン語のキーボードを使用しているため、CTRL-]を押すとズームすることです。 CTRL-]を他のキーにマッピングできますか、それとも他のオプションがありますか?

3
vimscriptのビジュアルセレクションをどのように調達できますか?
vimrcを配置する前にテストしたいvimscriptの行が数行ある場合、視覚的に選択してソースを指定できますか? 私が試してみました 視覚的な選択vを行い、次に選択を行うためのモーションなどを行います。 :'<,'>so しかしvimはエラーを出します 範囲は許可されていません また :'<,'>w | so 与える 使用する !部分的なバッファを書き込む 視覚的に選択されたvimscriptを入手するにはどうすればよいですか?

1
vimでリストの自動番号付けを行う方法は?
契約書などの正式なものには、番号付きリストが必要です。 1. Some text 2. More text 2.1. Sub-section text 等 重要なのは、リストアイテムを挿入または削除するときに手動で番号を付け直す必要がないことです。これは可能vimですか?リストの番号付けの一貫性を手動で追跡することは本当に困難です。 これに関連する目標の1つは、クリアテキストなどの難読化されていないストレージ形式によって適切なリビジョン管理を可能にすることです。



6
Vimで削除してから改行せずに貼り付ける
vimでは何度も行を完全に削除したいので、ddを使用します。ただし、その行を行内の別の位置に貼り付ける必要がありますが、これにより貼り付け前に改行が挿入されるため、目的の結果を得ることが非常に難しくなります。例えば、 while( pasteInHere ) { cin >> n; // Delete this line completely with dd } 上記のコードでこれを行うと、次のようになります。 while( pasteInHere ) cin >> n; // Delete this line completely with dd { } 希望する結果とはかけ離れています...この改行の動作を抑制する方法、または非常に効率的な別の方法を使用する方法はありますか。行頭に行かなければならないのでd $は良いとは思いませんが、空の行も削除したい場合は、別のレジスターで削除する必要があるので、もっと簡単な方法があるはずです!ありがとう。

1
同じマシンでvimとカフェインを使用する
バックグラウンド 私は研究所で働いており、毎日3つの異なるOSを使用しています。WindowsマシンとMacマシンでは、Caffeineを使用して、別のマシンで作業しているときにこれらのマシンでスクリーンセーバーが有効にならないようにしています(Linuxにはこの問題はありません)。切り替えたときに再度ログインしなければならないのは非常に面倒です。 問題 vimまたはgvimが挿入モードの場合、文字<F15>はドキュメントに散発的に表示されます。少し調べた後、私はそれをカフェインまで追跡しました。CaffeineのWebサイトでは、ソフトウェアは時々<F15>キーを押すイベントをシミュレートすることで機能すると述べています。 利用可能なすべてのキー操作のうち、F15はおそらく最も煩わしくなく(そのキーを備えたPCキーボードを見たことがありません!)、作業に干渉する可能性は最も低くなります。 したがって、カフェインは明らかに犯人です。ただし、私は今でも3台すべてのマシンでお気に入りのテキストエディターを使用することを好み、Caffeineの使用に対応するためにそれを変更するつもりはありません。 質問 vimrcvimに<F15>キープレスイベントを無視させるために入れられるものはありますか? わかりやすく編集 スクリーンセーバーのタイムアウトを無効にすることはできません。IT部門がセキュリティ上の目的で設定します。したがって、カフェインの回避策では、コンプライアンスを維持するために、デスクから離れるときに手動でマシンをロックする必要があります。それはそれほど悪くはありません。しかし、数分ごとにロックを解除します。 また、私はカフェインを作成しなかったので、開発者が<F15>1分間に1回クリックすることを選択した理由がわかりません。@ Random832が示唆しているように、私はおそらくそれを別の方法で、おそらくわずかなマウスの動きやタッチパッドのタップで行ったでしょう。

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