Vi & Vim

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

2
`gx`はgvimでURLを開かないが、ターミナルでは機能する
ターミナルではgvimと同様にvimを使用しています。私の問題は、ターミナルでgxは問題なくURLを開くことですが、gVimでは何も起こりません。 他の誰かがこの問題を経験し、修正を見つけましたか? パッチ1〜52を適用したgvim 7.4を使用しています。
7 gvim 

2
現在のバッファのgrepに基づく条件付きvimscript
編集したファイル内のテキストの存在に応じて、関数内のコードを条件付きで実行する方法を探しています。私はそれを行う方法を見つけましたが、それは機能しますが、あまり「きれい」に感じません。 ここに私が持っているものがあります: function! foo() (...) let v:errmsg = 'ok' execute "silent! normal! :/" . l:pattern . "\r" if v:errmsg == 'ok' (... do stuff ...) else (... do other stuff ...) endif endfunction 問題は、v:errmsgを不格好に使用しなくても、同じ結果がなんとかして得られるかどうかです。 私が頭に浮かぶのは、 function! foo() (...) if GrepInCurrentBuffer(l:pattern) (... do stuff ...) (...etc...)
7 vimscript 

2
現在の行の特定の文字で始まる次の単語に移動する
タイトルに記載されているコマンドが欲しいです。組み込みのVimコマンドで探しましたが見つかりませんでした。私はvimの関数についていくつかのチュートリアルをオンラインで実行しました、アイデアは私のようなものを持つことです.vimrc: map <command> <argument>: call nextWordWithLetter(argument) function nextWordWithLetter(letter) " for word i in line " if word i's first letter = letter " col = column of word i " break col | "The command to jump to column number 'col' end function

1
マウスホイールのスクロールにより文字が挿入される
私はiTerm2内のtmux内でmacvimを使用しています。基本的に、マウスホイールを使用してバッファをスクロールできるようにしたいだけです。設定しました set -g moude-mouse on 私の中で.tmux.conf、そして set mouse=a set ttymouse=xterm2 私の中で.vimrc。さらに、iTerm2で「xtermマウスレポート」を有効にしました。 マウスホイールを使用すると、vimは挿入モードに切り替わり、ランダムに見える文字を挿入します。vimがマウスのエスケープコードを正しく解釈できないと思います。 この問題はtmuxの外でも、デフォルトのTerminal.appでも発生するので、vimの問題であると思われます。 すべての可能な値で期限切れになりましたttymouseが、望ましい効果はありませんでした。
7 macvim  tmux  iterm2 

1
US以外のキーボードでチルド(〜)、バックティック( `)、および特殊文字を入力する方法は?
私は通常、Vimをイタリア語キーボードで使用しています(私はイタリア出身です)(主にWindowsホストのUbuntu Linux Virtualboxゲストで)。 イタリア語のキーボードレイアウトにない頻繁に使用される文字(UNIXの場合)を入力する必要がある場合、問題が発生します。特にこれらの文字を参照しています。 チルダ:(~ホームディレクトリのエイリアス) バッククォート/バックティック:(`主にrubyプログラム) OK、$HOME代わりにを使用できます~が、キーボードに存在しないこれらの(およびその他の)「特殊」文字を入力するためのVim固有の方法(おそらくいくつかのキーストロークシーケンス)はありますか? 解決策はキーバインドになる可能性があります.vimrcか?例として私は.vimrcこれにこれを持っています: map ' ` しかし、あなたが想像できるように、私はこの特定のキーのリマップに不満を持って<Fx>います...(そして私はすでに占有しています) ところで、質問はVimに直接関連しているのではなく、キーボードのハードウェア/言語設定に関連しているため、少し話題から外れているかもしれません。たぶんStack Overflowで尋ねるほうがいいですか?

2
GNUグローバルとvim
誰かがvimでGNUグローバルを使用しましたか?大規模なC ++コードベースをナビゲートしていて、その使用方法を理解するのに問題があります。gtags-cscope機能を使用したいのですが、後でvimに接続できる相互参照データベースを生成する方法がわかりません。 解決策を見つけるための助けがありがたいです。
7 tags  cscope 

1
移動後に前の行に戻るにはどうすればよいですか?
Vimは初めてです。私のコードファイルには300行あります。現在、カーソルが254 gg行目にあるとします。コマンドを使用して、カーソルを1行目に戻します。254行に戻りたいのですが、その行番号を忘れてしまいました。これを行うことができるコマンドはありますか?

1
カーソルのある単語または行の次の出現箇所を見つける
たとえば、大きな.gitignoreファイルを編集し、新しく追加されたツールセットの推奨される無視パターンのブロックを貼り付ける場合、手動で各行を調べ/\.filetype、filetypeがその行の何であるかを入力して、これが他の場所ですでに表現されていないことを確認しました。 私が使用する予定がないsort -uか、uniq私は関与ツールチェーンが主催無視のブロックを保持したいので。 基本的に、この行に一致する他の行を強調表示したり、カーソル位置の単語を検索したりするためのさらに短い方法が必要だと思います。誰かが私に方法を教えてもらえますか、それとも機能ではないのですか?


1
vimの破棄されたバッファとは何ですか?
私は5年以上もvimを使用していますが、破棄されたバッファーが何であるかを知らなかったときは驚きました。私が見つけた最も近い答えはこのSOの答えでした。 ロードされたが表示されなくなった破棄されたバッファは何ですか?複数のタブがある場合はどうなりますか?これらのタブにロードされているバッファのいずれかが破棄されているかどうかを確認してください。
7 buffers 

2
既存のマッピングのリストを簡単に検索するにはどうすればよいですか?
時々、現在のマッピングのリストを検索したいと思います。マップされたキー(何をする/<Space>aか)またはコマンド(どのキーがマップされるか)を検索します/MyFunction()<CR> これらのマッピングを:map(または:nmap、:vmapなど)で出力できることはわかっていますが、これにより、スクロールのみが可能で検索モードを使用できないウィンドウが開きます/。 したがって、このリストで検索したい場合redirは、コマンドの結果を新しいファイルに入れて、vimで開いて検索モードを使用する必要があります。 :redir > foo :map :redir END :e foo このワークフローは自然ではないと思います: 私がやりたいことに比べて、たくさんのコマンドを使っています。 それは私が削除しなければならない新しいファイルを作成します。 だから私の質問は、現在マップされているキーで検索を行うためのより自然な方法はありますか? これらのコマンドを実行する関数と、関数を簡単に呼び出すカスタムコマンドを作成できることはわかっていますが、もっと簡単な方法はないのではないかと思っていました。

3
コマンドラインから新しいバッファのコンテンツを指定するにはどうすればよいですか?
ターミナルで指定されたコンテンツでバッファを開く、つまりファイルに保存されないようにVimを呼び出す方法はありますか? たとえば、実行vimしてそれがfoo, bar, baz and qux書き込まれた状態でバッファを開くようにしたいと思います。 これを行うオプションはありますか?

1
バッファ全体をスペルチェックするにはどうすればよいですか?
現在のバッファー全体でスペルチェックをトリガーする組み込みコマンドまたはプラグインはありますか。検出した単語ごとに、無視するか、辞書に追加するか、スペルを修正するように求められますか? 私は]sスペルの提案をスキップしzgたりz=、辞書に追加したり、修正を提案したりするために使用してきましたが、同じスペルの多くのインスタンスとしてバッファを使用すると、特にコードや構成ファイルの場合、すべてのインスタンスをスキップするのが面倒です変数名やコマンドラインの意味不明なものなど、スペルに間違いはないものの、ディクショナリには属さないものがたくさんあります。

1
範囲を超えて通常のコマンドを実行する
次のようなファイルの場合: 2 AD,42.546245,1.601554,Andorra,376 3 AE,23.424076,53.847818,United Arab Emirates,971 4 AF,33.93911,67.709953,Afghanistan,93 5 AG,17.060816,-61.796428,Antigua and Barbuda,1 最初の10行の先頭のスペースと数字を削除しようとしているので、 AD,42.546245,1.601554,Andorra,376 AE,23.424076,53.847818,United Arab Emirates,971 AF,33.93911,67.709953,Afghanistan,93 AG,17.060816,-61.796428,Antigua and Barbuda,1 「2つの単語を削除する」:d2wが1行では機能するが、範囲では機能しないのはなぜ:1,10d2wですか? 注意: この問題自体は、を使用する固定形式により解決される:1,10s/.\{8\}//ため、これは、範囲を使用して:dNw

1
<afile>はいつ<amatch>と正確に異なりますか?
ドキュメントは言います: &lt;afile&gt; When executing autocommands, is replaced with the file name for a file read or write. &lt;abuf&gt; When executing autocommands, is replaced with the currently effective buffer number (for ":r file" and ":so file" it is the current buffer, the file being read/sourced is not in a buffer). &lt;amatch&gt; …
7 autocmd 

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