Vi & Vim

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


5
挿入モードでのナビゲーション
私は最終的にナビゲーションのために矢印キーを捨てることに決めましたhjkl。私が使用しVim hardmode、矢印キーを無効にするプラグインを。 ナビゲーションにかなり早く慣れましたが、挿入モードでのナビゲーションは突然不可能であることがわかりました。 これに対する解決策はありますか?(既存の挿入モードは解決策ではありません)。

1
どのプラグインがキーバインディングの原因であるかを把握する
私は質問に答えようとしていましたが、私の答えは、インストールしたプラグインによって提供されるキーバインディングに依存していることに気付きました。さらに悪いことに、どのプラグインがそれを提供するのかわかりません。 この問題を解決する唯一の方法は、インストール済みのプラグインの半分を無効にし、残りの半分を有効にして「バイナリ検索」することです。Vundleを使用してプラグインを管理しているため、各反復ではプラグインリストの一部をコメントアウトするだけで済みますが、それでも面倒な手順です。 特定のキーバインディングを担当するプラグインを判断するより良い方法はありますか?代わりに、特定のキーバインディングがvimrcファイルによって直接提供されるかどうかを判断する方法はありますか? Vimにはプラグインの概念が組み込まれていないことに気付いたので、「vimscriptを含むどのファイルが特定のキーバインディングの原因であるかを判断するにはどうすればよいですか?」

1
ヒアドキュメント内で言語固有の構文を有効にするにはどうすればよいですか?
PHPファイルを編集して、heredocで文字列を定義すると、JavaScript構文、HTML構文、またはSQL構文の場合、heredoc内で構文の強調表示が有効になります。ただし、CSS構文では機能しません。 例(hello.php次のコードで呼び出される新しいPHPファイルを作成する場合): <?php $foo = <<<"JAVASCRIPT" var hello = "hello"; JAVASCRIPT; $bar = <<<"CSS" /* This code below should be syntax-highlighted. */ .hello { font-weight: bold; } CSS; JAVASCRIPTブロックが正しく強調表示されますが、CSSブロックではありません。また、JavaScriptコードブロックのキーワードで実行SynStackするvarとが取得さ['phpRegion', 'phpHereDoc', 'javaScriptIdentifier']れますが、CSSブロック内の任意の場所で同じ操作を実行するとのみが取得されるため['phpRegion', 'phpHereDoc']、CSS構文の強調表示ルールを追加する必要があります。これらの構文規則はどこで定義され、どのように追加しますか?


2
.mdファイルをMarkdownとして開く
デフォルトでは、Vimはすべての.mdファイルを「modula2」コードとして開きます。私はmodula2について聞いたことがないし、それを使うつもりもありません。 vimに常にfoo.mdMarkdownとして処理するように指示するにはどうすればよい:set ft=markdownですか(入力したかのように)。
19 filetype 

1
vimrcでカスタムポップアップ/メニューを定義する方法
便利な機能をすべてキーに割り当てることは、頻繁に使用するツールではうまく機能しますが、使用する操作はほとんどないため、で定義されたポップアップメニューに割り当てることをお勧めしますvimrc。 CtrlPのようなプラグインがポップアップリストを開くのを見てきたので、これが可能になるはずです。 だから私の質問は: さまざまなコマンドを実行できるカスタムポップアップメニューを定義する方法は? 注:これも端末で実行する必要があります。 X11のCtrlPプラグインやdmenuのようなものが理想的です。入力するときにオプションを調整できますが、別の種類のメニューも便利です。
19 vimrc 

2
スペルミスの自動修正
スペルチェックを有効にしました :set spell spelllang=en_us 入力することで単語のスペルを修正できます1z=(つまり、1stスペル修正(z=)を選択します)。 スペースを入力するたびに、遅延なく前の単語でこれを自動的に実行するにはどうすればよいですか?また、すでに正しくスペルされている単語を「修正」しようとするため(のようなことはできませんinoremap <space> <esc>mmb1z=`ma<space>)、スペルが間違っている場合にのみ入力するすべての単語を修正したいと思います。 Vimでスペルミスの単語を自動修正する方法はありますか?

4
テキスト内の非常に長い行(500文字以上)を処理するにはどうすればよいですか?
一部のテキスト形式では、改行が重要です。 たとえば、私はしばしばVimを使用してMediaWikiドキュメントを記述しますが、そこではどこにも改行を入れることができません(Markdownとは異なります)。だから私はたくさんの文字で行を書くことを余儀なくされています。 これは、長い行(200文字以上)または非常に長い行(1000文字以上)につながる可能性があります。Vimでこれを使用するのは非常に厄介です。一例として、1000文字行の途中で何かを編集する場合、カーソルを500回移動する必要があります。 これはwまたは/で少し速くすることができますが、それでも厄介です。 これに対処するより良い方法はありますか?より良い移動キー?ある種の「偽のラッピング」(テキストはあたかもファイルのように振る舞うtw=80が\n、ファイル内ではない)、または何か他のもの?

6
ハイライトされた単語上でカーソルの色を変える
現在使用しているカラースキームでは、検索結果をナビゲートするときにカーソルの位置を見つけるのは困難です。ハイライトの色とカーソルの色が混ざり合って、カーソルを見つけにくくなっています。 強調表示された単語上にあるときにカーソルの色をどのように設定しますか?


2
Vimをプライベートモードで起動する最も簡単な方法
プライベートモードでVimを簡単に起動できるようにしたい。このコマンドセットを利用するものとしてプライベートモードを定義しましょう。 set history=0 set nobackup set nomodeline set noshelltemp set noswapfile set noundofile set nowritebackup set secure set viminfo="" プライベートモードに適した追加のコマンドを考えられるかどうか教えてください。 重要なのは、このセットアップでVimを起動するための短くて簡単な方法は考えられないということです。 ここに私が思いついたいくつかのアイデアがあります: .vimrcの代わりに.vimrcprivateをロードする 必要なコマンドをすべて.vimrcprivateに入れて、次のようにVimを起動できます。 vim -u .vimrcprivate Private()関数を定義して呼び出す 別のアイデアとして、次のようなコードを.vimrcに追加します。 function Private() " set of commands here endfunction そして、次のようなプライベートモードでVimを起動できます。 vim -c 'call Private()' 変数を使用してコマンドのセットアップをトリガーします これは、2番目のソリューションと非常によく似ています。追加するだけ if exists('privatemode') " set of commands …

1
gxにvimの完全なURLを認識させるにはどうすればよいですか?
デフォルトでは、vimのバッファーになどのURLが含まれているhttp://www.google.com場合gx、通常モードではそのURLでブラウザーが開きます。それは非常に便利です。ただし、URLにURLパラメーターがある場合(例http://www.google.com/search?q=stuff:)、URLパラメーターは失われます(つまり、単にhttp://www.google.com/search開かれます)。 私はMacVim 7.4パッチ183を使用しており、Chromeをプライマリブラウザとして使用しています(OS X 10.9上)。 gx完全なURL を認識するための簡単な方法、理想的には最小限のカスタマイズはありますか?

1
次の「段落」にジャンプするにはどうすればよいですか?
現在、私は1000行以上の長さのテキストのいくつかのブロックで作業しています。次の段落の最初に移動する簡単な方法はありますか? 今のところ私の回避策は、2つの連続した改行文字を検索することです。 /\n\n 別の回避策は vip Esc j vip v常にパラグラフi n pを選択します(パラグラフの最後まで移動します) Esc 視覚的な選択からの脱出 j 下に移動

1
map、noremap、abbrev、noreabbrevコマンドの違いは何ですか?
これらのコマンドは、何らかの方法でキーストロークのセットを別のキーストロークに変換しますが、特定の状況に最も適しているキーストロークはいくらか曖昧です。さらに、!それらのバリアントもあります。現時点では、それらの使用法はかなり偶然であるため、それぞれに関連する落とし穴を知ることができますか?特に、コマンドを使用しているときだけでなく、行のどこにでも展開できるコメントでPeter Rinckerから学んだので、さまざまなモードバージョンに関する特定のメモが役立ちます。潜在的な落とし穴に対してどのような予防策を講じることができますか?cmap:

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