Vi & Vim

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

1
vimの混合色構文
私はしばしばvimを使用してknitrでドキュメントを書いています。つまり、マークダウンコードとRコードが混在しています。RチャンクにR構文の色付けを行いたいが、他のすべてのフラグメントにはマークダウンまたは色付けをしたくない。これは実行可能ですか?どうやって?


1
なぜラインフィードが検索レジスタ内でヌル文字に変換され、コマンドラインでキャリッジリターンに変換されるのですか?
次のテキストがある場合: foo bar 視覚的に選択してコピーします。 テキストは名前のないレジスタに保存され、"その内容は:reg "次のとおりです(の出力)。 "" foo^Jbar^J このチャートによると、^J改行のキャレット表記のようです。 次のようにa入力して、名前のないレジスタをレジスタに複製する場合::let @a = @" その内容(の出力:reg a)は次のとおりです。 "a foo^Jbar^J 変わらなかった。 を入力して検索レジスタに複製した場合、:let @/ = @"その内容(の出力:reg /)は次のとおりです。 "/ foo^@bar^@ 前のチャートによると、^@Nullキャラクターのキャレット表記です。 なぜ改行は検索レジスター内で自動的にヌル文字に変換されるのaですか? コマンドライン(またはの検索内/)に名前のないレジスタを挿入する場合、を入力して:<C-R>"、次のように挿入します。 :foo^Mbar^M 繰り返しますが、最後のチャートによると、^Mキャリッジリターンのキャレット表記法のようです。 コマンドラインで改行がキャリッジリターンに自動的に変換されるのはなぜですか? 編集: 通常、次のように入力してリテラル制御文字を挿入できます。 <C-V><C-{character in caret notation}> たとえば、を<C-R>入力してリテラルを挿入できます<C-V><C-R>。 一見どんな制御キャラクターに対してもできます。 しかし、私は私が入力した場合ので、私は、バッファ内またはコマンドラインでリテラルLFを挿入することができないんだということに気付きました:<C-V><C-J>それは挿入^@、ヌル文字を、代わりに^J。 LFが検索レジスタ内でNULに変換されるのと同じ理由ですか? 編集2: では:h key-notation、これを読むことができます: <Nul> zero CTRL-@ 0 (stored as …

1
動的補完
古い補完機能を強化しようとしています。新しい文字を入力すると、ポップアップメニューに表示される選択肢を更新したい 私の補完機能は function! lh#icomplete#ecm(findstart, base) abort if a:findstart let l = getline('.') let startcol = match(l[0:col('.')-1], '\v\S+$') if startcol == -1 let startcol = col('.')-1 endif " let g:debug+= ["findstart(".a:base.") -> ".(startcol)] return startcol else " let g:debug += ["matching(".a:base.")"] let words = ['un', 'deux', 'trois', 'trente-deux', 'unité'] call filter(words, …

2
vimでスペルファイルをダウンロードするにはどうすればよいですか?
spelllang初めて設定するときに、適切なスペルファイルを自動ダウンロードするように求められました。どういうわけか、私に尋ねられたとき、どのディレクトリに行くべきか不明な指示のためにプロセスを中止しました。 今、私は:set spelllangそれがちょうど言うときWarning: Cannot find word list...しかしそれをダウンロードすることを提供しません。 プロセスを再起動するにはどうすればよいですか?

2
カーソルから最初の文字x(複数行にわたる)まで削除します
を使用して、文字xが最初に現れるまでカーソルから削除できることを知っていますdfx。これは1行でのみ機能します。どのように私は、最初の出現まで、現在のカーソル位置から削除することができ、X際、xは同じ行にはないのですか? たとえば、カーソルが最初のスペースの後にある場合 やだやだやだやだやだ やだやだxやだやだやだx dfx結果を入力する必要があります: やだ

3
動きのあるマッピング
マッピング内の後続のモーションで演算子を使用する方法を理解しようとしています。例えば: nmap /c c{here we pending for a motion}/<C-r>"<CR> マップは次のことを行う必要があります。 cオペレーターをアクティブにして、次の動きを聞きます。 たとえば、t,次のコンマの前にすべてを変更するためにここに入力できます。 カーソルとコンマの間のすべてを削除する挿入モードに移動します。 削除されたテキストはパターンとして自動的に検索されます 簡単に言うと、モーションテキストが削除された後、削除されたテキストが強調表示された挿入モードのままになります。誰かがこの事件を解決するのを手伝ってくれたらとても感謝しています。 更新 答えはほとんど私が欲しいものです。だが!を押す/cwと、単語の代わりに何かを入力し、を押し<Esc>ます。次の出来事でも同じことをするつもりだ。ただし、presing n(次のオカレンスに移動)および.(最後のコマンドを繰り返す)の後、最後に入力したテキストを置き換えるのではなく、先頭に追加します。マッピングの主な目標は、とそれを使用しているn/Nと.繰り返しに。私は何かを見逃しましたか?

3
Vimで強調表示された取り消し
spacemacsのデフォルト設定のように、Vimで強調表示された取り消しをしようとしています。すぐに元に戻す操作が必要な場合は、瞬時に変更されるため、何が変わったのかわからないことがあります。だから私はプレスが元に戻すときにこのような何かをしようとしています: 誰でもVimでこれを行う方法を知っていますか? (すでにGundoプラグインを持っています。デフォルトの取り消しをよりスムーズにしたいだけです) 編集:undotreeプラグインの仕事は(ないGundoが変更をハイライト表示されません)だけを使用UndotreeToggleコマンドを、ファイル上のすべての将来の変更が強調表示されます。

2
通常モードでのj、CTRL-J、<NL>およびCTRL-Nの違いは何ですか?
私は誰かが使用しているWebのどこかを見ましたが、Ctrl-Jこのマッピングを知らなかったので、関連するドキュメントを調べて次のことを見つけました: j or &lt;Down&gt; or CTRL-J or &lt;NL&gt; or CTRL-N [count] lines downward linewise. それはいくつかの質問に私を導きます: 何ですか&lt;NL&gt;:を&lt;CR&gt;押すEnterと、デフォルトで通常モードで1行下に移動しますが、なぜ&lt;NL&gt;ここにあるの&lt;CR&gt;ですか? これらのマッピングの違いは何ですか:これら5つのオプションはすべて同じように1行下に移動しますか?私のテストによると、私はイエスと答えますが、それは私の次の質問につながります。 なぜ、まったく同じことを行うに5つのマッピングがあります:私はそれを理解することができますjし、&lt;down&gt;vimのマッピングに使用されていないユーザーのために保管されているが、それ以外のマッピングはなぜ存在するのか? どちらを使用するのがより興味深いのか:前の質問の続きです:可能性が非常に多い場合、異なる利点があるか、特定のユースケースで使用する方が良いと思います。それらのユースケースは何ですか? 私が見たときに、これらのコマンドの冗長性がさらに奇妙見つける:h kまで行くための唯一の3つの方法があります:k、&lt;UP&gt;とctrl-p。ボーナスの質問は次のとおりです。なぜ下降するのに5つの方法があり、上昇するのに3つの方法しかないのでしょうか。

1
.vimrcで機密データを使用するには?
私は.vimrcをgithubで同期させて公開ファイルにする必要がありますが、同時にいくつかの機密データ(たとえばdbext.vimのdbパスワード/ホスト)をそこに配らずに入れなければなりませんその他。最善の方法とその方法は何ですか?
12 vimrc  security 

2
VimでLaTeXシンボルを検索するにはどうすればよいですか?
何らかの形のシンボル補完をVimに統合できますか?TeXMakerのような専用のTeXエディタは、(例えば、完了のためにシンボルのリストを提供する\alのリストを示し\alpha、\la番組\lambdaと\langle)。 TeXにはかなり多数のシンボルがあるため、\altoの手動マッピングを含む提案\alphaは役に立たないことに注意してください。 私が持っている関連プラグイン: SuperTabとlet g:SuperTabDefaultCompletionType="context"し、 set omnifunc=syntaxcomplete#Complete LaTeX-Box 問題があれば、XeLaTeXを使用してコンパイルします。 関連: 記号を検索したり、数学記号や文字を識別する方法は?

1
:bwipeoutを使用すると、どのような悪いことが起こりますか?
:bwipeoutコマンドを発見したばかりで、その:help状態は次のとおりです。 に似て:bdeleteいますが、実際にバッファを削除します。バッファに関連するすべてが失われます。このバッファ内のすべてのマークは無効になり、オプション設定は失われます。何をしているのかわからない限り、これを使用しないでください。 明らかなことを除けば、このコマンドを使用することの欠点はわかりません。 私のオプション設定は、問題のファイルを次に開いたときにほぼ常に同じ値にリセットされ、マークを失っても不吉な警告が正当化されないようです。 「など」には何が含まれており、私が予見していないことでどんな恐ろしい結果が生じる可能性がありますか?
12 buffers 

1
Vimが特定のファイルタイプのイベントを記録しないようにする
このstackoverflowの質問に追加するに.vimrcは、特定のファイル拡張子(.gpgファイルなど)の「プライベート編集」を確実にするために何を入力する必要があります。 セッションの有効性を損なうことなく、行われた作業についての情報はレジスタを含む、保存されるべきではない、の履歴、コマンド履歴、ビュー、スワップなどを検索しgpg、ファイル、1を使用することができ、このvimのプラグインを、しかしプラグインを編集する以外に、どのようにでしょうこれらの議論されたアイデアを任意のファイルタイプに拡張しますか? おそらく次のコマンドを使用します。 if &lt;ft in privacy_ext_list&gt; set noswapfile set noundofile set viminfo= endif しかし、適切な条件文に加えて、何が欠けていますか? さらに、Vimscriptでファイル拡張子の配列を作成し、現在のファイルタイプが配列内にあるかどうかを評価する方法はありますか?

3
窓をグリッド構造に戻すにはどうすればよいですか?
次の一連のコマンドのように、ウィンドウを4つの象限に配置している場合: :tabnew :vsplit :split &lt;C-W&gt;l :split 次に、次のようなコマンドを入力する&lt;C-W&gt;Jと、これらは正方形ではなくなります。この場合、1つのウィンドウを強制的に下部にフロートさせます。 どうすれば反対のことができますか?つまり、ウィンドウを強制的に正方形のフォーメーションに戻しますか? 読ん:help window-movingだことがありますが、有用なものは見当たりませんでした。

3
最初から作成せずにvimrcをパーソナライズするUI
Vimは無限に設定可能です。ただし、vimrcの考案は、初心者や中間ユーザーにとっては困難な作業です。基本的に、ドキュメントを読んで、他のユーザーから偶然のヒントを拾うことにより、白紙から開発することが期待されています。 初心者がvimrcを生成および修正するのに役立つ直感的な構成メニューはありますか?ウェブベースのツールか、ワープロのオプションダイアログに似たものでしょうか?
12 vimrc  options 

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