Vi & Vim

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

1
挿入モードを終了せずにカーソルを正しいインデントレベルに移動する方法は?
たとえば、このJavaScriptコードがあります。|文字はカーソル位置を表し、それが空行です。 function a() { console.log("a"); function b() { console.log("b"); function c() { console.log("c"); } | c(); } b(); } 要求された操作の後、内容は次のようになります。 function a() { console.log("a"); function b() { console.log("b"); function c() { console.log("c"); } | c(); } b(); } 私が求めているのはマッピングコマンドです。 どうもありがとうございました! :-)

1
ウィンドウが一緒にスクロールするのはなぜですか?
同じバッファーで2つのウィンドウを開いており、同じファイルの2つの部分を同時に編集したいです。ウィンドウが一緒にスクロールしているため、できません。私はnoscrollbindこれに混乱しているように設定しました。他に何がこれを引き起こしているのでしょうか? 新しいセッションを開始すると、問題はなくなります。すべてのバッファ番号を記憶しているため、セッションを終了する必要はありません。

1
:search()を呼び出した後、一致した文字列を取得することは可能ですか?
vimscript関数では、l:matched呼び出し後に一致した文字列を変数に割り当てる必要search()があり、現在行っている方法よりも短い方法があるかどうか疑問に思っています。 let l:pattern = '\v^Foo: \zs.*' let l:line = search(l:pattern) let l:line_text = getline(l:line) let l:matched = matchstr(l:line, l:pattern) 理想的には、次のようなものが欲しい let l:matched = search_text(l:pattern) に頼らずにgetline()。見つけられないようなvim関数はありますか?
14 vimscript  search 

1
ftpluginのautocmdの場合、パターンマッチングまたは<buffer>を使用する必要がありますか?
TeXおよびMarkdownファイルのautocmdを使用して、ファイルを自動的に保存します。異常なし: autocmd CursorHold *.tex,*.md w ただし、これらのファイルのカスタム設定が増加したため、それらをftplugin/tex.vimおよびに分割しましたftplugin/markdown.vim。 " ftplugin/tex.vim autocmd CursorHold *.tex w " ftplugin/markdown.vim autocmd CursorHold *.md w 現在、これらのファイルは適切なファイルのみをソースとしているため、パターンマッチングは冗長です。どうやら、autocmdsはバッファローカルにすることができます。から:h autocmd-buffer-local: Buffer-local autocommands are attached to a specific buffer. They are useful if the buffer does not have a name and when the name does not match a specific pattern. But …
14 autocmd  filetype 


2
vim + tmuxでのカーソル形状
cygwinの下でtmux内でvimを実行するとき、どのように異なるカーソル形状を使用できますか? tmuxがなければ、これらの行は私が望むものを達成するのに十分でしょう: let &amp;t_SI = "\e[5 q" let &amp;t_EI = "\e[2 q" しかし、どういうわけか私のtmuxはそれを壊します-カーソルは私がどんなvimモードであってもブロックの形をしています。 私の仕様: Windows 7 x64 Cygwin x86 TMUX 1.9a Vim 7.4.726(+ cursorshapeでコンパイル) 端末エミュレーター:mintty 1.1.3 Cygwin TerminalまたはCmderで使用されます(どちらの方法でも、カーソル形状はTMUXなしでのみ機能します) echo $TERM私を与えるscreen-256color私は持っているので、TMUXおよびそれの外で(export TERM=screen-256colorに私の.bashrc .tmux.conf 含まれるもの: set -g default-terminal "screen-256color" setw -g xterm-keys on 私がすでに成功せずに試したこと: export TERM=xterm export TERM=vt100 「バーを右クリック&gt;オプション&gt;ルックス&gt;カーソル」(カーソルは永続的に変更されますが、vimモードでは変更されません)
14 tmux  cygwin 

3
さまざまな単語を同時に編集します。複数の選択肢があるSublime Textのように、同じ行を1つ編集します
同じ行にある複数の単語を同時に編集することはできますか? たとえば、私がこれを持っているとしましょう: Spam and Eggs is all you need for a healthy breakfast 行を次のように変更したいと思います。 organic_Spam and organic_Eggs is all you need for a healthy breakfast 「スパム」と「卵」を強調表示し、「有機」を「スパム」と「卵」に同時に追加します。ビジュアルブロックを使用して異なる行に同時に書き込むのに少し似ていますが、ここでは同じ行にデータを書き込みます。私は同僚がSublime Textでこれをやっているのを見て、グーグルで試しましたが、うまくいきませんでした。

1
選択した行を折りたたむ
ビジュアルモードで選択した行を折りたたんだり展開したりするにはどうすればよいですか? 3つの段落があり、最初の2つまたは最後の2つを1行に折りたいとしましょう。 Test ==== Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias.. Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido …


1
特定のファイル拡張子を完了から除外するにはどうすればよいですか?
開くのに「適切」とみなされるファイルの種類に関してvimを設定する方法はありますか? 例で明確にしましょう。ラテックスドキュメントで作業していると想像してください。ファイルをビルドすると、ディレクトリに次のものが(ビルドに関連する他のファイルとともに)あります: X.aux X.log X.out X.pdf X.tex ここで別のファイル(たとえばY.tex)で作業していて:sp X.tex、を使用&lt;Tab&gt;したい場合、使用可能なファイルを循環するために使用できます。 :sp X&lt;Tab&gt; vimはすでにどのファイルが必要かを選択し、それらのファイルを最初にオートコンプリートしているようです。これは、私のvimがファイルを自動補完する順序です。 X.pdf X.tex X.aux X.log X.out 繰り返しになりますが、vimは.pdfor .texファイルを開きたいと判断し、それらを最初にアルファベット順に表示しています。次に、残りのファイルが再びアルファベット順に表示されます。まず、私の理解は正しいですか? もしそうなら、どうしてvimにそれを.pdf使ってファイルを開くことに興味がないと思わないように伝えることができますか?この方法では、最初&lt;Tab&gt;の.texファイルはすぐに、実際に探しているファイルとしてファイルを取得します。

3
Vimに「小さな削除」をレジスタ「1」に保存させることもできますか?
YankRingプラグインを最近セットアップから削除しましたが、これはマクロにいくつかの問題を引き起こしていたためですが、主に、代わりにVimのレジスターを使用するように訓練する方が良いと判断したためです。さらに削除が行われるにつれて、などに"1移動し"2、"3非常に便利です。 ただし、削除/変更によって1行未満のテキストが"-削除されると、代わりに小さな削除レジスタに保存されます(特定の移動コマンドにはいくつかの例外があります)。後続の小さな削除が行われると、そのテキストの一部は失われます。 Vimですべての削除をレジスタに保存することは可能"1ですか? nnoremap d "1d ほとんど動作しますが、レジスタ"1 との 両方にテキストが表示されます"2。 小さな削除レジスタの機能が影響を受けるかどうかは気にしません。名前付きレジスタに小さな削除を保存するように振る舞いを変更することを提案することは、間違いなく有用な答えではありません-それは私が現在していることです。
14 register 

2
カーソルが既に文字列内にない場合にのみ、挿入時に自動的に閉じ「または」を追加します
でvimrc開き括弧を入力すると、閉じ括弧と中括弧を自動的に入力するマッピングを定義しましたinoremap ( ()&lt;esc&gt;i。 私は同じことをやってみたい"と'、しかし、カーソルが現在の文字列内にない場合にのみ、 -文字列の中のように'、おそらくアポストロフィではなく、ストリング区切り文字です。これどうやってするの?


3
スペルチェック選択ウィンドウで自分の修正を入力できるようにするにはどうすればよいですか?
以下にz=示すように、スペルチェック、キーイングを行うと、選択リストが表示されます。 正しいスペルを見ることができるように; 「ie」はオプションとして表示されません。このメニューを拡張して、代わりに「ie」と入力してEnterキーを押して置換できるようにします。 同じステップの一環として、提示されたオプションのいずれかの名前の入力を開始し、タブがそれに競合する場合、それは素晴らしいことです-私の心は、数字を入力するよりも単語を入力することで単語を置き換える方がうまく機能します。 これはプラグインで行う必要があると思いますが、それが単なる設定オプションではないことは確かではありません。

4
マクロで単語をcamelCaseに変換するにはどうすればよいですか?
次のような単語のリストがあります。 these are some words that I want to convert to camel case たとえば、マクロ内にcamel case変換camelCaseする方法(または、視覚的な行選択のすべての行をキャメルケースに変換する方法)が必要です。 wgUlhx必要に応じて何度でも使用できますが、問題は、長さが異なる単語では機能しないことです(たとえば、ではwgUlhxwgUlhx機能しますconvert this pleaseが、では機能しませんconvert these pretty please)。 上記の行の望ましい出力は次のようになります theseAre some wordsThatIWant toConvertTo camelCase これを自動化する方法はありますか?

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