Vi & Vim

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

1
番号と相対番号で左揃えされた現在の行番号
現在の行には絶対行番号と共に相対行番号を使用します。 set number set relativenumber 現在の絶対行番号は常に左側に配置され、ヘルプページ(またはGoogle)はこれを変更するオプションを提供していないようです。 この左揃えを防ぐことは可能ですか、それとも一緒に暮らすことを学ぶ必要がありますか?

1
同じディレクトリにあるにもかかわらず、vimがタグファイルを表示できないのはなぜですか?
私はフォルダにいますE:\dir\python_file.py、:pwdショーE:\dir。:e tagsで生成したタグファイルを開きますctags -R。 私が持っているtags:合理的と思われるものにセットをset tags?示していますset tags=./tags,tags;E:\。Verbose set tagsは私のvimrcのみを表示します。 を使用すると、およびの:tag method_name2つのエラーがスローされます。E433: No tags fileE426: tag not found: method_name 私はWindowsを使用しています。
8 tags  ctags 

1
1つのキーコマンドのタイムアウト値を変更するにはどうすればよいですか?
私が欲しいもの 特定のキーコマンドのタイムアウト値を一時的に変更するには 私が見たところ :help 'timeout'私があります。 The timeout only happens when the 'timeout' and 'ttimeout' options tell so. A useful setting would be > :set timeout timeoutlen=3000 ttimeoutlen=100 (time out on mapping after three seconds, time out on key codes after a tenth of a second). キーコマンドでこれを実装する方法や、タイムアウトの現在の設定を確認する方法がわかりません。 たとえばhh、行の先頭に移動するように設定したかったのですが、その特定のキーコマンドのタイムアウトを、たとえば100ミリ秒とかなり速くしたかったのです。 私が試したこと :set timeout …

6
かっこ/括弧などの開始と終了の両方を押すときにvimを使用する
私がプログラムすることを学んだとき、私は開始ブラケットと終了ブラケットの両方などを押してから、左矢印キーを押してテキストを入力します。だから、中に入れて[hello]入力し、私[]それが第1のブラケットの上にあるように、左の矢印を、そして([)。 私はいつも正しい数のブラケットなどを持っていることを知っているので、それが好きです。 しかし、Vimの考え方に固執するために、私は継続的に矢印キーに手を伸ばしたくありません。矢印キーを使用したり、挿入モードを継続的に切り替えて押し続けるだけhで実行できることはありますか?

3
ブレースを簡単に削除する方法
友人の1人から、下の方法で中かっこを削除できると言われました。 削除する中括弧のペアの内側にカーソルを置きます。 y i {中括弧でテキストをヤンクし、v a {貼り付けpます。 それは次のようにうまく機能します: for(int i = 0; i < s.length(); i++) { int index = s[i] - c; if(root->next[index] == NULL) root->next[index] = new TrieNode; root = root->next[index]; } コマンドを実行した後: for(int i = 0; i < s.length(); i++) int index = s[i] - c; if(root->next[index] …

2
ASCII文字で文字を操作する
私が持っているとしましょう let l:letter = 'A' l:letterアスキーコードを受け取り、それを変換する関数はあり'B'ますか?私のようなものを意味します let l:next_letter = l:letter + 1 <Ctrl-A>with set nf=alphaがあることは知っていますが、ドキュメント内の文字の上にカーソルを置く必要があるため、ドキュメントを変更せずに変数を使用してそれを実行できるかどうか疑問に思いました。 ここまでが私が試したものですが、先ほど述べたように、ドキュメントとカーソル位置が変更されます。 fu! s:get_next_char(letter) set nf=octal,hex,alpha call setline(line('$') + 1, a:letter) exe ':normal! G^'."\<C-A>" set nf=octal,hex let l:next_letter = getline('$') normal! Gdd return l:next_letter endfu
8 vimscript 


2
vimコマンドの履歴を共有する方法はありますか?
Vimコマンド履歴をインスタンス間でリアルタイムに共有できますか? つまり、この方法で人々がbashで何をするかを意味します。 export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" つまりecho test1、あるシェルでコマンドを実行してからUp、別のシェルで押すと、が表示されecho test1ます。(正確には、それが機能EnterするUpためには、前に押す必要があります。) これはVimで可能ですか?最初は、+clientserverオプションを使用するとうまくいくと思いました。しかし、それは別のことのようです。

2
[count]%は何をしますか?
[count]%一致する中括弧のcount時間などの間で前後にジャンプすることを期待しますが、代わりにそのコマンドを入力すると、カーソルがバッファ内のランダムな場所に移動するようです。それは常に一定の場所に行くようですcountが、異なる場所には別の場所に行きますcount。それで、そのコマンドは正確に何をしますか?

1
`echomsg`の場合は` echon`
コマンドは同じライン内の複数のハイライトグループでテキストの行を出力するために非常に便利です。これは、たとえばプラグインの素敵なステータスメッセージを作成するために使用できます。echonechohl 私が取り組んでいるプラグインでは、色付きのステータスメッセージを出力するこの正確な方法を使用しています。ただし、これらのメッセージをmessage-historyと同じようにに追加したい場合がありechomsgます。これはどういうわけか可能ですか?これには固有の機能はないと思いますが、vimスクリプトで機能を追加できますか?


1
引数付きのシェルスクリプトを呼び出す関数
私は自分のプログラムをコンパイルして実行するbashスクリプトを呼び出す独自の関数を作成しています。 これが私が試したコードです。 function Compile_and_run(game, major, minor) !_compile a:game a:major a:minor endfunction 唯一の問題はa:game、値の代わりに解析されるようです。 どのように私はなるだろうa:game、a:major、a:minor関数にその値を解析するために?

2
リストから選択して最近使用したファイルにアクセスする方法は?
編集に使用するファイルを選択するために、最近使用したファイルのリストを表示するキーストロークが欲しいのですが。 それを提供するには何が必要ですか? そして、関連した、 最近使用したファイルの履歴を管理するにはどうすればよいですか? これは、ファイル名またはサブディレクトリの除外をサポートする必要があります。

4
で始まるプロセスを置く!バックグラウンドで
シェルからこれを行うと: $ sleep 100 私はそれをバックグラウンドにすることができます: ^Z $ bg そして、私のシェルを使い続けます。&コマンドの最後にa を追加することで同じ効果を得ることができますが、これはよく忘れます。 Vimでは、私はよくします: :!sleep 100 そしてここでも、を追加するのを忘れがち&です。このプロセスをバックグラウンドで実行し、シェルのようにVimを引き続き使用できますか?

1
ファイル拡張子に基づいて現在のファイルでシェルコマンドを実行する
現在、RubyとJavaScriptの両方で多くの作業を行っています。Rubyファイル:! ruby %と同様にJavaScriptを:! node %で実行でき、それらのいずれかをにバインドできることを知っています,b。編集中のファイルの拡張子をチェックして適切なコマンドを実行する単一のコマンドをバインドできるように設定するにはどうすればよいですか?

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