Vi & Vim

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

2
setと:setの違いは何ですか?
私はティム・ポープのvim-sensibleプラグインを見ていましたが、READMEでこれに気付きました... 機能の信頼できるリストについては、ソースを参照してください。(心配しないでください、ほとんどが:set呼び出しです。) ソースを見ると、:set呼び出しは次のようになっています... set autoindent の:前にありませんset。 私も実際:setに例で見たことがあると確信しています.vimrc。 違いはなんですか? どのフォームを使用する必要があります.vimrcか?
16 vimscript  vimrc 


2
viで(vimではなく)A、B、C、Dを表示する矢印キーを修正
私はvimに私が追加できることを知っています set nocompatible で.vimrc矢印キーが挿入モードではA、B、C、Dを表示することを回避します。 しかし、私はvi バージョン4.0(グリッター)12/25/06を使用しています。 同じ動作を取得するにはどうすればよいですか? ==編集==(1) 私が使用しているアーチのLinuxからviのバージョンこのことから構築されているCVSリポジトリを次のコマンドで(前回2007年2月24日をコミット): make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \ TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8" そして、これらの3つのパッチ:fix-tubesize-short-overflow.patch、navkeys.patchおよびpreserve-dir.patch。 ==編集(2)== この問題は、LXTerminal 0.2.0、Termite 10-1、Tilda 1.2.4-1、Terminator 0.98-1、xterm 320-2で発生しますが、urxvt v9.21でもLinux仮想コンソールでも発生しません。 ==編集(3)== よると、単一のUNIX仕様左矢印、それぞれ以下のcapnameに対応して上向き矢印、右矢印、下矢印、: 、、kcub1 と。これらのcapterms からのterminfoエントリを比較すると、以下が得られます。kcud1kcuf1kcuu1xtermrxvt-unicode-256color $ infocmp xterm rxvt-unicode-256color | grep -E 'kcuf1|kcub1|kcud1|kcuu1' kcub1: '\EOD', '\E[D'. kcud1: '\EOB', '\E[B'. kcuf1: '\EOC', …



1
Ctrl +小文字をCtrl +大文字とは別にマッピングできますか?
私はウィンドウを少し速くナビゲートする方法を見つけようとしているので、次のものをマップしたいと思います: :nmap <silent> <C-F> :wincmd f<CR> 問題は、これが^f(小文字のf)マッピングを再マッピングすることで、これはページダウンです。リマップ^F(大文字F)のみを行い、その^fままにする方法はありますか?

2
fおよびtモーションを次の行に展開します
方法があるt{char}とf{char}場合に、次の行に取り組んでいきます{char}与えられたラインに存在しませんの? /{char}<CR>特に、これを動詞と組み合わせて(たとえばdfa、ct.)必要とする場合、1つのキーストロークを保存し、検索の強調表示を使用しないようにしたいと思います。

2
WinEnter、BufEnter、BufRead、Syntax、FileTypeイベントの順序は何ですか?
私はautocmd.txtヘルプを試しましたが、これに関する情報は散在しており、常に存在するわけではありません(例:with BufRead)。 これをよく理解している人がこれらのイベントの順序をリストできますか? WinEnter BufEnter (if this window is for a different buffer than the current) 簡単に参照できるように? 注(以下の自分のコメントからコピー):それらの個々の説明については話していないが、それは問題ありませんが、それらが互いにどのように相互作用し、どの順序で起こるかについてです。たとえば、WinEnter「VimはWinEnterオートコマンドの後にBufEnterオートコマンドを実行します」、TabEnter「WinEnterをトリガーした後、BufEnterイベントをトリガーする前に」と言うと、このように多くの場所に散らばっています。そして、時にはそれは、例えばのために(すべてでは言及していない。BufReadそれはBufEnter後、または前に実行されるかどうか言及していない- 。多分専門家が情報のいくつかの他の部分からそれを推測することができますが、私はできません ので、ここに私の意図がにありますこれらのイベントの順序に関する単一の単純な参照を作成します。これらの参照は、専門家以外でもすばやく検索できます。autocmd イベント仕様。

1
リモートファイルのファイル名補完
私の友人は、数日前にEmacsでクールなトリックを見せてくれました。リモートサーバーでファイルを開くだけで、すぐに「vimでもそれを行う方法があるはずだ」と思いました。 私はそれ:e scp://user@server//filepathを行うために使用するだけで問題ありません;)。ただし、サーバー名を入力するだけで、ファイルのパスと名前(タブ付き)の補完を取得できます。これは私にはできませんでした。誰かがこれがvimでできるかどうか知っていますか?

3
<Esc> Oのスピードバンプ(標準に挿入してカーソルの上に新しい行を挿入)
多くの場合、挿入モードのときにヒットEscして通常モードに入り、すぐにヒットOしてカーソルの上に新しい行を開始し、そこで挿入モードに入ります。 しかし、私がそれをするときO、目に見える応答がある前に私が打った後1秒の遅延があります。私は、新しいテキストは文字の特定のセットのいずれかで始まる場合、その1秒の遅延中に新しいテキストを入力し始めるさらに場合(例えばj、k、m、n、o)、私はしませんでした他のいくつかの操作の途中で終わります多くの場合、混乱を引き起こしますが、その時点で、元に戻してやり直し、元に戻すとやり直さなければならないことを意図しています。 その不快感を避けるために、を入力するたびに1秒間一時停止する習慣をつけましたO。しかし、これは私を遅くし、そうでなければ私がするであろうvim速度の悪魔になることを防ぎます。 これは何が原因ですか?修正または回避策はありますか?

3
コメントの折り方
構文foldmethodは優れていますが、ソースファイルのコメントを折りたたむだけの場合もあります。 また、コメントの構文の折りたたみは、次のようなCスタイルのコメントに対してのみ機能します。 /* ... */ ただし、次のようなコメントの定型文ではありません。 // // // ... // または、次のような非Cライクな言語のコメントブロックでも: # # # ... # vimでこれを設定するにはどうすればよいですか?
16 folding 

1
両方のスプリットを同時に左右にスクロールするにはどうすればよいですか?
文書の2つの異なる部分を水平分割(を使用:sp)で開き、両方を一緒に左右にスクロールしたい。垂直スクロールの場合、を使用しますscrollbind。ただし、水平スクロールに何を使用すればよいかわかりません。 を使用するとvimdiff、両方のドキュメントで同時に水平にスクロールするため、この機能が利用可能である必要があることを知っています。
16 split  scrolling 

1
Vimのファイル名のbashのような部分的なタブ補完
Bashでは、同じプレフィックスを持つ複数のファイルがあり、プレフィックスの一部をTab入力してを押すと、共通のプレフィックスが完成し、入力を続けて、可能な結果を​​区別できます。 Vimでは、同じプレフィックスを持つ複数のファイルがあり、プレフィックスの一部を入力しTabてを押すと、最初の一致全体が完了し、すべての一致から選択できます。セットを減らすには、共通部分の最後に到達するまでバックスペースし、さらに入力してもう一度ヒットTabする必要があります。 多くの場合、長い共通プレフィックスがあるファイルがたくさんありますが、必要なファイルは最初のものではありません(たとえば、名前がすべてのさまざまなメイクファイルを含むプロジェクトファイルのディレクトリなどMakefile.{whatever})。 多くのキーストロークを節約するために、VimをBashのように完全にできますか? これが他の補完にも適用できる場合のボーナス(たとえば、すべて同じプレフィックスを持つ列挙値)

3
コマンドラインモードで相対行番号を使用するにはどうすればよいですか?
最近、Practical Vimから、カーソルを現在の位置から移動せずに行のブロックをコピーまたは移動する方法を学びました。これはコマンドラインモードで行われます。例えば :123,133m. # moves lines from 123 to 133 below the cursor position. 気に入っていますが、特にファイルの行数が多すぎる場合は、長い行番号を入力するのは面倒です。 時には、移動する行がカーソルの比較的近くにあることがあります(ただし、カーソルを移動したくない、ヤンク、元の場所に戻って、貼り付けたい!)。通常モードで行うのと同様に、相対番号を使用できれば素晴らしいと思います。言っているような 現在の行の10行上にある5行をここに移動します 要するに、コマンドラインモードで相対番号を使用するにはどうすればよいですか(通常モードと同様)?

1
Vimがマークダウンでタグの中間タグを分割しないようにする
このMarkdownファイルがあるとしましょう: [Lorem ipsum dolor sit ](http://vi.stackexchange.com/many-links-are-often-very) いい感じ。しかし、リンクは完成していないので-long、と入力すると、Vimは次の行を中断します。 [Lorem ipsum dolor sit ](http://vi.stackexchange.com/many-links-are-often-very-long) 私のtextwidth=80設定のために...リンクの中間タグを壊すことは技術的に有効なマークダウンですが、見た目は非常に見苦しいです。見栄えの良いソースファイルを持つことは、マークダウンのポイントのようなものです。 gq問題は、多くの場合、さらに悪くなります。 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec [Lorem ipsum dolor sit](http://vi.stackexchange.com/many-links-are-often-very-very-long) これになります: Lorem ipsum dolor sit amet, consectetur adipiscing …

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