Vi & Vim

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

1
「vim」の正しい大文字は何ですか?
「vim」を大文字にする適切な方法は何ですか?私はこれらのバリアントが使用されているのを見ました: ヴィム Vim ViM VIM どちらが正しいですか?または、それらはすべて正しいと見なされますか?:helpファイルを見ると、いくつかのスタイルが使用されています。

4
vimで異なるキーボードを操作する最も便利な方法は何ですか?
私は時々ギリシャ語の単語を書く必要がありますが、ギリシャ語のキーボードを使用しているとき、打つことは、たとえば、意図するコマンド<C-p>として<C-π>ではなく、理解されるでしょう。これはで修正できます:map <C-p> <C-π>。すべてのリストを作成せずにすべての文字に対してこれを実行できますか? PS。すべてのリストを作成しても、完璧な結果は得られません。例えば、qある;Grの上。キーボード、ただしマッピングしたくない; qへ また、何らかの理由で、after(zeta zeta)は後に機能しません:map Ζ Z。そして、私が定義したコマンドは、\lwとして機能しません\λς。

1
d [count] dをマップするにはどうすればよいですか?
NBこれは、「d3fg」コマンドがどのように機能するかを複製したものではありませんか?投票する前に読んでください! 小さな削除を大きな削除のようにしようとする私の探求で少し行き詰まりになりました。私が持っている問題は、のようなコマンドを再マップする方法を理解できないことd3dです。実際、そもそもそれらがどのように機能するかを理解することも、Vimのヘルプでそれらの言及を見つけることもできません。 d3j簡単です:dオペレータを3jモーションに適用します。 3ddまた、簡単ddです。3の「カウント」でコマンドを実行します。 d3d それは簡単なように見えますが、d演算子を...に適用しますが、何3dですか?それは動きではありません。自分で入力3dした場合、Vimはそれをカウントの後に演算子が続くものとして扱い、それ以上の入力を辛抱強く待ちます。 また、演算子を他の演算子に適用することはできません。ddヘルプでは、2つの演算子のシーケンスとして説明されていません。これは、独立した2キーストロークコマンドです。(cf. dc、何もしません。) また、2つのキーストロークを必要とするコマンドの場合、カウントの配置が柔軟であるということはないようです:2gjカーソルを2画面行下に移動しますがg2j、最初の2キーを完全に破棄し、カーソルを1行下に移動します。 それでは、どのように機能しますか?これはVimの内部コードの特殊なケースですか?d[count]dマッピングを作成する方法はありますか? 編集:それはテキストオブジェクトですか?:h text-objects「テキストオブジェクト選択コマンド」のリストには含まれませんが、「小さなオブジェクトから大きなオブジェクトにグループ化された」削除のリストにはdd が含まれます。そしてd2aw、カーソルの下の単語と次の単語を削除します。一方、c2d何もしません。 *それらについての言及が存在するに違いないと確信していますが、見つけることができません。私が読んだ:help deleting、:help motion.txtと試してみました:helpgrep dNd1-9からのNの全ての値のために。

3
終了しようとすると時々表示される「[コマンドライン]」とは何ですか?また、どうすればすぐに終了できますか?
時々、Vimを終了しようとすると、次のようなものが表示されます。 これをどのように誤って呼び出すかはわかりませんが、現在のエスケープ方法はランダムキーを押すことで、最終的には消えます。2つの質問: どうやってそれを呼び出しますか(私は:qvimを終了するために使用します)、そして、 どうすればすぐに終了して、作業中の内容に戻ることができますか?

2
スクロールホイールを使用する場合、カーソルではなく画面をスクロールします
私は端末でVimを使用しているので、スクロールホイールでのスクロールには\e[Aand \e[B構文(\e記号化\x1b、またはエスケープ)が使用されます。 ただし、Vimはカーソルを行の上または下に移動することでこれを解釈します。望ましい行動はということです画面が上に移動または下に、のようなものである<C-e>と<C-y>行います。 カーソルを同じ行に置いたままスクロールホイールを使用したときに画面を移動するようにVimに指示するにはどうすればよいですか?これは、すべての共通モード(挿入、通常、視覚選択)で機能するはずです。 例えば、私はすでに:nnoremap <esc>[A <C-e>(で<esc>挿入されたリテラルのエスケープ文字に置き換えて)試しましたCtrl+V Escが、これは無駄であることが判明しました。 Ubuntu 14.04でGNOMEを搭載したVim 7.4.52を使用しています。

2
vimで:openは何をしますか?
Vimのドキュメントには、:openコマンドについて次のように記載されています。 This command is in Vi, but Vim only simulates it: *:o* *:op* *:open* :[range]o[pen] Works like |:visual|: end Ex mode. {Vi: start editing in open mode} :[range]o[pen] /pattern/ As above, additionally move the cursor to the column where "pattern" matches in the cursor line. Vim does not support open …
18 ex-mode 

4
垂直分割でVimのヘルプを開くにはどうすればよいですか?
私は通常、約25文字の高さで動作するドロップダウンターミナルで働いています。私はウィンドウ1よりタブを好むので、通常、多くの水平方向のスペースが浪費されます-ターミナルの幅の約半分です。 さらに、Vimのデフォルト設定はhelpheightであり、ヘルプウィンドウを開くと、ファイルコンテンツの数行が残ります。 :h垂直分割を使用する方法はありますか? 私はできた: 減少 helpheight <C-W>Lウィンドウを手動で移動するために使用します 上記を行うマップまたはカスタムコマンドを作成します。 もっと簡単な方法はありますか? 1私がやる私が一緒に複数のファイルを見るために必要がある場合、使用の窓を。しかし、通常、各ファイルは独自の(メンタル)コンテキストにあることを好みます。

4
64ビットVimをWindowsにインストールするにはどうすればよいですか?
Vimのダウンロードページには、64ビットバージョンが廃止されたと書かれています。 Win64 Vimの32ビットバージョンは、64ビットウィンドウで正常に動作します。64ビットのバイナリがありましたが、あまり使用されず、メンテナンスが停止しました。 32ビットのVimが64ビットのPythonを認識しないことを除いて、これで問題ありません。has('python')?0。 64ビットVim(GVimを含む)をWindowsにインストールし、可能な限り多くのプラグインをサポートするためのオプションは何ですか? Creamのバイナリも32ビットであるようです(を参照version.txt)。Cygwinのためとして、私はそれで実行されているのgvimを(得ることについてわからないんだけど、それは明らかに必要DISPLAYセットまだのCygwin自体の複雑さを介して別の合併症であるXサーバーの必要性を示すことになります、、)。 私はMinGWをインストールしているので(確かにかなり古くなっています)、自分でコンパイルしようと試みました。 Vim Wikiaはhttps://tuxproject.de/projects/vim/x64/を提案していますが、これにはやや不気味な指示があります: 適切なDLLファイルをVimディレクトリにコピーして、それらを機能させる必要があります。彼らは含まれていません。 Vimディレクトリへ?ウィルhttps://tuxproject.deのビルドは、Pythonが別の場所にインストール拾うではありませんか? そこで、64ビットVimをインストールして、次のようにします。 公式のPythonバイナリ(できれば2と3の両方、できれば最新バージョン)を使用してPythonをインストールすると、そのまま使用できます。 更新し続けるのは簡単です インストールするための要件は最小限です(... Cygwinのインストールは、実行可能な場合は最小限にする必要があります)

4
Pythonトレースバックのクイックフィックスサポート
実行時エラーのあるPythonスクリプトがあるとします。 $ cat example.py #! /usr/bin/env python3 a = 1/0 与えるもの: $ python3 example.py Traceback (most recent call last): File "example.py", line 3, in <module> a = 1/0 ZeroDivisionError: division by zero Vimにそのファイルの問題のある行(この場合は3行目)にジャンプしてほしい。私はそれがでCにコンパイル時にエラーをキャッチするためにうまく動作しますので、Vimはこれを行うことができます知っているgcc使用:makeしてquickfixウィンドウ。 もちろん、Vimのquickfixウィンドウにと:set makeprg=python3\ %を入力できます:makeが、トレースバックが指す行番号にジャンプしません。これを見る:copenと、トレースの最初の行が強調表示されているだけで、関連する行番号にジャンプできません。 (jessie重要な場合に備えて、Debian でVim 7.4を使用しています。) 私の質問は: Pythonトレースバックから関連する行番号を取得する方法を認識できるようにVimを構成できますか? Pythonインタープリターを変更して、Vimが関連する行番号を解析および取得する方法を既に知っているエラー形式を吐き出すことができますか?

2
vi、nvi、vimの関係は何ですか?
いつかいくつかのUNIXで、という名前のコマンドを見つけましたnvi。それはviのようなエディタであり、その機能の多くはありませんでした。たぶんそれは古い人のフォークだったのviでしょうか? とにかく、どのviバージョンが他のバージョンのフォークであり、どのバージョンが独立した開発ですか?UNIXに似た「家系図」はありますか?


1
VimでUnicode結合文字を検索できますか?
文字ã(小文字の+を組み合わせたチルダ)を持つファイルがあります。 Encodingとfileencoding両方utf-8です。 gaショー <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (ただし、実際の結合チルダでは<>)およびg8ショー 61 + cc 83 での検索は/a\%u0303うまくいきます。 検索すると\%u0303、E486パターンが見つかりません。 基本文字も検索せずに、結合文字のみを検索できますか?

3
正規表現マッチャーを欲張らないようにする方法は?
私はファイル内のテキストを置き換えるために正規表現を使用しようとしています(完全なURLをprotocol / domain /に置き換えます): :%s/\(https\?:\/\/.*?\/\).*/\1/gc 残念ながら.*?、?量指定子をエスケープしようとしても、文字列と一致しませんか?vimで貪欲でない数量詞をどのようにエスケープする必要がありますか?


1
vimの最後のファイルに移動する
多くのテキストファイルを使用して一度に開くことができます vim *txt ファイル:<int>nを進めるために使用できること<int>は知っていますが、最後に開いたファイルに到達する方法がわかりません。これまで私は:1000n意図的にオーバーシュートしようとしましたが、それはエラーを与えます E165:最後のファイルを超えることはできません そこから私はちょうど、すなわち、時間がかかり最後に取得しようとしてバイナリ検索に頼ります:500n、:250n、125n、... vimで最後に開いたファイルにアクセスするにはどうすればよいですか?

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