Vi & Vim

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

3
目的の場所に複数のカーソル
vim-multiple-cursorsプラグインを使用しています。 カーソルを希望する場所に正確に配置したいと思います。例([x]カーソル位置です): Lorem ipsum dolor sit amet[1], consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna[2] aliqua. で崇高なテキスト私は通常、矢印キーで次の位置に移動し、第二1を入れ、その後、最初にカーソルを置きます。 VIMに類似したものはありますか? このプラグインなどを使用します。 編集 コメントに続いて \section[My first section in this book]{My first section in this book} 、.texファイルへの書き込みを試みたときにそうすることに興味がありました。私の最初の反応は\section[]{}、[]andの中に同じものを書くために2つのカーソルを書いてから置くこと{}でした。 他の例は_someStuff、いくつかの異なる変数名の後に追加することです。たとえば、これを有効にします。 variable1 = 2 my_variable2 = 12 var3 = 14 これに: variable1_someStuff …

1
代替コマンドでスラッシュ(/)を感嘆符(!)に置き換えるとはどういう意味ですか?
私は最近、著者が次のようなものに/置き換えた代替コマンドを見ました!::s!abc!ABC!g この使用法に関するドキュメントを見つけようとしましたが、関連するものは見つかりませんでした。それで、私は自分で実験してみましたが、2つのサインの本当の違いを理解できませんでした。ここに私が見つけたものがあります: これは、混在させることはできません!し、/コマンドで。たとえば、:s!abc/ABC失敗します。 パターン内の!エスケープを回避するために使用すると便利な場合があります/。たとえば、私は交換したい場合</に%私が使用できる:%s!</!%!gのではなく:%s/<\//%/g。 場合によっては、一部の正規表現が/動作せ!ず、適切に動作するようですが、私は実際には正規表現の専門家ではないので、私はそれを確信していません。 だから私の質問は簡単です:!代替コマンドで使用することの利点は何/ですか?いつ代わりに使用することに決めますか?
13 substitute 

1
MacVimが他の呼び出しごとに異なる方法で起動するのはなぜですか?
今日、MacBookでいくつかの作業をするために座ったとき、ある時点で私の.gvimrc設定に関して何かがおかしくなってきたことに気づきました:MacVimを起動したとき、ウィンドウが非常に小さい(ほぼデフォルトのサイズ) )。奇妙なことに、verbose set columns?ウィンドウの幅が明らかに 180列ではないのに、「180、〜/ .gvimrcからの最後のセット」を教えてくれました。set columns=180ウィンドウを予想された幅に復元しました。 RCファイルの通常のデバッグと二分割の後、異常なことに気付きました。これが私の列のサイズが適用されていないかどうかに関係なく、どちらにせよ、それが好奇心が強く、私はそれを理解することができません。 を実行するとmvim -u NONE -c "set columns=100"、次のようなウィンドウが表示されます。 まったく同じコマンドを再度実行すると、次のようになります。 verbose set co?どちらの場合も、「-c引数からの最後のセット」と言って、それぞれ100と66を報告します。起動コマンドを繰り返すと、ウィンドウの状態が交互に変わります。 .viminfo実行と実行の間にヌキングを試みました。効果はありません。 現在MacVimスナップショット74を使用していますが、以前のバージョンを使用していたので、これが発生し、バージョン管理の問題かどうかを確認するためにアップグレードしました。私は10.10.3にいますが、この動作はOSアップデートの結果として表面化したMacVim固有のバグが原因である可能性があります(最近発生した)。ただし、妻のラップトップ(同じOSバージョンを実行している)にMacVimをインストールすると、動作は再現されません。 私は迷っています。一体何がこの行動を引き起こしているのでしょうか? 編集:デバッグを続けた後、ラップトップに外部モニターを接続している場合にのみこの方法を再現するように見えることに気付きました。これは、それが何らかのバグだと思うようになります。
13 macvim  startup 

2
vim autocomandからの出力を抑制する
私のvimrcでオートコマンドが定義されています: au BufWritePost * !./make.sh スクリプトmake.shは.texファイルを3回コンパイルしますが、出力を表示したくありません。 出力を抑制する方法はありますか? コマンドのsilent前に1行追加しようとしましたauが、機能しませんでした。私もこの方法で成功しませんでした。
13 autocmd 

2
同一行テキストの自動強調表示
熟練したvim忍者がしばらく前にこれを行うのを見ましたが、開始するつもりはありませんでした。 A)vimsの背景色を設定して、同じ内容の連続する行を強調表示する方法はありますか。 B)誰かがそれを行う方法を知っている場合、これに対する素晴らしい調整は、強調表示が連続した行で行われ、最初の単語のみ(行全体ではない)を考慮する場合です。 一致する行(またはABに依存する単語がアクティブである)の数に基づいて、強調表示を異なる色に構成できる場合の2番目の調整が使用されます。そのため、緑色に一致する2つの連続した行、3〜5の連続した行、次にオレンジ、6 +に続いて赤の2つの連続した行のみがあります。

4
この<Esc>通常モードのマッピングが起動に影響するのはなぜですか?
のノーマルモードマッピングで奇妙な問題が発生していますEsc。 escmapvimrc内容を含むファイルを作成する場合: set nocompatible set showcmd " Doesn't affect the problem: just makes it easier to see nnoremap &lt;Esc&gt; :noh&lt;CR&gt;&lt;esc&gt; そして、このvimrcを使用してvimを起動します。 vim --noplugin -u escmapvimrc その後、vimはオペレーター保留モードで起動し、cコマンドがさらに入力を待機し、空のファイルを表示し、コマンドラインがを表示し:nohます。 nnoremap行を削除すると、問題はなくなります。 すべてをデバッグしてステップスルーすると、次の出力が得られます。 Entering Debug mode. Type "cont" to continue. /[...]/escmapvimrc line 1: set nocompatible &gt;s /[...]/escmapvimrc line 2: set showcmd " Doesn't affect the …

2
AtomまたはSublime Textと同様に、vimの折りたたみを1行に折りたたみます
私は、AtomとSublime Textが行の折り畳みを処理する方法が好きです。各折り畳みの最初の行が表示され(構文の強調表示が完了)、折り畳みを示す行の末尾にマーカーが追加されます。 Vimのインデントフォールディング(上)とAtomのインデント(下)を比較した以下のスクリーンショットを参照してください。 Vimは各フォールドに2行を割り当てます。1行目は見出しとして機能し、2行目は折り畳みに関するいくつかの情報(折り畳み内の行数とテキスト)を説明します。 Atomは1行のみを使用し、行の終わりに小さなマーカーを使用して、左側の行番号に追加された色とともに折り目を示します。Atomの折りたたみスタイルは、使用する画面領域が少なくなりますが、それでも本当に必要なすべての情報を伝えます。 私はAtomの折りたたみスタイルには不満です。私の意見では、特に上記のスクリーンショットのように複数のメソッドまたは属性を連続してリストする場合は、よりクリーンで一貫しているように見えます。 VimでAtomの折りたたみスタイルを大まかに概算する方法はありますか?
13 folding 

3
nviや元のviで複数回元に戻すことはできますか?
Vimのないシステムで、デフォルトnvi(BSDシステム)またはオリジナルvi(Arch Linux)を使用することがあります。 かなりの違いがありますが、最大のイライラは、最後の操作しか取り消せ ないことです。もう一度押すとu「やり直し」になります。 これを機能させる方法はありますか?

3
Vimのクイックフィックスウィンドウにバッファをリストするにはどうすればよいですか?
vimエディターを使用する一般的なタスクは、バッファーを参照することです。現在、:lsまたはなどの標準コマンドを使用しています:bnext。実際、私は.vimrcを設定しました: "move amongs buffers with CTRL map &lt;C-J&gt; :bnext&lt;CR&gt; map &lt;C-K&gt; :bprev&lt;CR&gt; MRUプラグインが実装するシンプルな(=優れた)方法で、クイックフィックスウィンドウでリストとしてバッファーを参照したいと思います。 MRUと同じくらい簡単ですが、バッファーに作用するプラグインはありますか? OK、可能性のある解決策は:CtrlpBuffers、Ctrlpプラグインの一部であるコマンドを使用することですが、Ctrlpの大ファンではありません。MRUプラグインとして本当にシンプルなものを探しています。 ところで、私は:cexpr {expr}コマンドで冗談を言って:buffers、成功せずにリストの内容でクイックフィックスウィンドウを埋めようとしました(おそらく私の無知プログラミングvimscripts) なにか提案を ?
13 buffers  quickfix 

1
WORDの完了
&lt;C-p&gt;そして&lt;C-n&gt;、現在のドキュメント内で見つかった単語の完了を可能にします。 私はいくつかのメモを取り、発言{0,1}^nを(E,D)何度も書いています。これらは、いくつかの単語で構成される単語です。 &lt;C-p&gt;and &lt;C-n&gt;(または他の関連ins-completionコマンド)でWORDを完了する方法はありますか?

2
Vimは自動保存されますか?
から:help swap-file: スワップファイルを更新する スワップファイルは、200文字を入力した後、または4秒間何も入力しなかったときに更新されます。これは、バッファが変更された場合にのみ発生し、移動しただけでは発生しません。常に最新の状態に保たれない理由は、これにより通常の作業が非常に遅くなるためです。'updatecount'オプションを使用して200文字カウントを変更できます。「updatetime」オプションで時間を設定できます。時間はミリ秒単位で指定されます。スワップファイルへの書き込み後、Vimはファイルをディスクに同期します。特に忙しいUnixシステムでは、これには時間がかかります。これが必要ない場合は、 'swapsync'オプションを空の文字列に設定できます。ただし、仕事を失うリスクは大きくなります。一部の非UNIXシステム(MS-DOS、Amiga)では、スワップファイルはまったく書き込まれません。 これから、いくつか質問があります。 これは、Vimが時々作業を自動保存するということですか? 「スワップファイルへの書き込み後、Vimはファイルをディスクに同期します。」これは何を意味するのでしょうか?これは、最初にメモリに書き込まれ、次にディスクに書き込まれるファイルを参照していますか、それとも別のものですか? クラスのメモを取っているとしましょう:書くのが速いので、挿入モードを終了する必要はほとんどありません。しかし、作業を保存するためだけに何度もNormalに変更します。これを行う必要がありますか、または挿入モードを終了しなくても、Vimは私の作業のほとんどが保存されていることを確認しますか?
13 save  swap-file  backup 

2
ソースコードファイルをHTMLに変換する方法は?
プログラミング言語(PHPなど)で記述されたソースコードのファイルがあり、それをHTMLファイルに変換したいので、コードを共有するためにWebで公開できます。 変換とは、たとえば、&lt;br&gt;テキストエディターとWebブラウザーの両方でテキストが同じ書式を維持するように、新しい行をタグに変換することを意味します。理想的には、構文の強調表示も保持して、印刷もできるようにする必要があります。 これはVimで達成可能ですか?もしそうなら、どのように?

9
カラースキームの背景がターミナルで正しくない
ソラライズされたカラースキームとパレットをインポートしました。私の端末には正しい色と背景があり、gvimには正しい色と背景がありますが、vimには間違った色の背景があります。テキストはすべて正しいですが、背景は真っ黒に見えます。 これが私の.vimrcです。 syntax enable if has('gui_running') set background=dark else set background=dark endif :set t_Co=256 let g:solarized_termcolors=256 colorscheme solarized 誰かがこれを引き起こしている可能性について何か提案があれば、私は大いに義務づけられるでしょう。デフォルトの端末でxubuntuを実行します。 また、ライトオプションを使用すると、Vimの背景が非常に黄色になります。

2
スワップファイルを保持しているウィンドウを上げる
時々、複数のプロジェクトで作業している間、および/または、何でも、多くのVimインスタンスを開いたままにしておきます。 [O]pen Read-only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort GUI /ターミナルのように、開いているファイルを保持するように、インスタンスを生成する方法で構築されたものはありますか?問題のファイルをフォアグラウンドに持ってくることが理想的です(複数のバッファーがある場合)。 現在のところ、スワップからPIDを抽出するbashスクリプトを使用wmctrlしています。そのPIDがVimに属しているかどうかを確認し、そうであればウィンドウを上げるために使用します。少なくともGUIとX11 Linuxの場合、これはうまく機能しますが、もっとネイティブな方法があるかどうかを尋ねています。
13 swap-file  x11  linux 

1
vim構文領域をタッチ/オーバーラップさせることはできますか?
そのため、少し前に、私はvimの構文ファイルがどのように機能するかについて、自分で作成することでさらに学ぶことにしました。私の目標は、区切り文字に基づいてファイルを3つの部分に分割し、これらの3つの部分のうちの2つの部分に既存の構文ファイルを含める単純な構文ファイルを作成することでした。 これはサンプルファイルです。 Some text, unstyled ==================== Log (Output of git log) ==================== Diff (Output of diff) 目標は、2つのヘッダーを除いてgit.vim、ログdiff.vimのみと差分のみに適用することでした。1 これは私の構文ファイルが最終的に次のように見えるものです: if exists("b:current_syntax") finish endif syntax include @gitlog $VIMRUNTIME/syntax/git.vim syntax region GitLog \ start=/^===* Log/ \ end=/^===* Diff/ \ contains=@gitlog syntax include @gitdiff $VIMRUNTIME/syntax/diff.vim syntax region Diff \ start=/^===* Diff/ \ end=/\n\n/ \ …

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