問題タブ [vim]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vim - Vimで「gf」からどのように戻りますか
Unix モードでインストールされた Windows に Vim を使用しています。このサイトのおかげで、gf
コマンドを使用してカーソル下のファイルに移動できるようになりました。
次のいずれかのコマンドを探しています。
- 前のファイルに戻る ( ctags の Ctrl+と同様)、またはT
gf
新しいウィンドウで新しいファイルを自動的に起動するように再マップします。
search - Vim 検索リストから出現箇所にジャンプする方法
Vim エディター]I
で、関数 (C++ コード) を選択しました。これにより、 「Press ENTER or type command to continue」というリストが表示されました。
オカレンスにジャンプするために 6 と入力します6
が、これは機能しません。
このような場合、どのようなコマンドを入力できますか? また、このリストから N 番目の出現箇所にジャンプするにはどうすればよいですか?
アップデート:
実際に:N (例: :6) を試してみましたが、入力した瞬間に:
Vim が挿入モードになり、代わりにコードにコロンが挿入されます。
アップデート
:Nアプローチが正しいと仮定すると、構成なしで Vim の完全なアンインストールとインストールを行っても役に立ちませんでしたが、入力:
しても Vim が挿入モードに切り替わることはありません。
regex - Vim Markdown の強調表示 (リスト項目とコード ブロックの競合)
vim とその構文強調表示についてもっと学ぶことにしました。他の例を使用して、Markdown 用の独自の構文ファイルを作成しています。mkd.vimを見たことがありますが、この問題もあります。私の問題は、リスト項目とコード ブロックの強調表示の間にあります。
コード ブロックの定義:
- 最初の行は空白です
- 2 行目は少なくとも 4 つのスペースまたは 1 つのタブで始まります
- ブロックは空白行で終了します
例:
コードブロックの私のVim構文:
順不同リスト項目の定義:
- 最初の行は空白です
- 2 行目は [-+*] で始まり、その後にスペースが続きます
- リストは空白行で終了し、次に通常の (リストではない) 行で終了します
- 行項目の間に任意の数の空白行を追加できます
- サブリストはインデント (4 スペースまたは 1 タブ) で指定されます
- リスト項目の後の通常のテキスト行は、そのリスト項目の継続として含まれます
例:
順不同リスト項目定義の私の Vim 構文 (強調表示のみ[-+*]
):
リストの最後の 2 つのルールとコード ブロックで強調表示が機能しません。
これは、構文の強調表示を壊す例です。
現在、ハイライトを希望どおりに機能させる方法がわかりません
以下にリストされている両方のルールで使用される「グローバル」構文ルールを追加するのを忘れていました。空白行で始まるようにするためです。
別の注記: もっと明確にすべきでした。私の構文ファイルでは、List 規則が Blockquote 規則の前に表示されます。
python - Vim 拡張 (Python 経由)?
カスタム拡張 (できれば Python で記述) を介して vim 機能を拡張することは可能ですか?
私が理想的に必要としているのは、コマンド モードのときのカスタム コマンドです。例えば
ESC
:これを行う
:それを行う
vim - VimでEmacsの転置語をエミュレートする方法は?
Emacs には、transpose-words
句読点を保持したまま、カーソルの前の単語をカーソルの後の単語と交換できる便利なコマンドがあります。
たとえば、'<コード>スタック |オーバーフロー' + Mt = '<コード>オーバーフロー スタック|' ('<code>|' はカーソル位置です)。
<a>|<p>
になり<p><a|>
ます。
Vimでエミュレートできますか?を使用できることはわかってdwwP
いますが、句読点ではうまく機能しません。
更新:いいえ、実際dwwP
には解決策ではありません。想像:
Emacs の Mt は and を交換b
しc
、結果として(a)(c)(b)
.
機能するのは/\w
yiwNviwpnviwgp
. しかし、それは台無し""
にされ"/
ます。よりクリーンなソリューションはありますか?
更新²:
解決済み
不完全ですが、機能します。
私の注意を引いてくれた Camflan に感謝し%#
ます。もちろん、それはすべてwikiにありますが、機能の正確な(Emacs は完全に正しい) 重複の問題を解決できるとは思いませんでしたtranspose-words
。
python - vim用のPythonプラグインの良いセットを見つけた人はいますか?特にモジュール補完?
最終的にフルタイムで vim に切り替えるのに役立つ一連のプラグインを探しています。
現在、私は Komodo を使用してある程度の成功を収めていますが、それらの vim バインディングには十分な小さなエラーがあり、うんざりしています。
しかし、私が Komodo で気に入っているのは、コード補完です。だから、ここに私が探しているものがあります(重要度順)。
- コード補完、意味: 完全なモジュール/関数/などをコーディングする能力。system modules だけでなく、pythonpath にあるすべてのモジュールで。完了時に docstring を表示するためのボーナス ポイント。
- クラス定義にジャンプします。CTAGS がこれを行うと思いますが、タグ ファイルの自動更新をどのように管理していますか?
- バッファを管理するためのプロジェクト タイプ管理: 理想的には、ディレクトリ構造内のファイル名を grep して開く機能。バッファが開いている間にクラス定義のインデックスを表示するためのボーナス。
- Bzr 統合。ほとんどのことはシェルにドロップして実行できるため、それほど重要ではありません。
macos - OS Xで*コンソール*バージョンのvimをアップグレードするにはどうすればよいですか?
これは初心者の質問だと思いますが、os x用のvimの新しいバージョンをコンパイル/dlするたびに、コマンドラインでvimを実行するとgvimアプリが開きます。コンソールのバージョンをアップグレードしたいだけです(たとえば、オムニコンプリートを使用するためにPythonをコンパイルすることができます)。
vim - Vimはctagsを自動生成します
今、私は私の中に次のものを持っています.vimrc
:
これにはいくつかの問題があります。
- 遅い-最後のタグ生成以降に変更されていないファイルのタグを再生成します。
- 「Enterキーを押すか、コマンドを入力して続行する」という必然性があるため、ファイルを書き込んだ後、Enterボタンをもう一度押す必要があります。
これらの2つの問題を組み合わせると、(終了する前に)追加のEnterキーを押すのが早すぎctags -R
て、迷惑なエラーメッセージが表示され、Enterキーをもう一度押す必要があります。
大したことではないように思えますが、特定の日に行うファイルの書き込み量が多いと、非常に煩わしくなりがちです。それを行うためのより良い方法が必要です!
vim - Vim でバッファをリセットする
vim セッションの代替バッファを以前のものにリセットすることは可能ですか?
代替バッファとは、# で参照されるもの、つまり cntl-^ を入力したときに表示されるものを意味します。
main.c と other.c を開いて :ls を実行すると、次のようになります。
たとえば、別のファイル (たとえば、refer.c) を開くと、:ls で次のようになります。
refer.c を含むバッファーを削除すると、:ls は次のように表示されます。
しかし、cntl-^ を実行すると、refer.c が再び表示されます。
vim に代替バッファを自動的に最後のものにリセットさせる方法はありますか? 代替バッファーの「履歴」?
または、 a :2 b を実行して other.c を代替バッファーにリロードすることに固執していますか?
それとも、この動作には正当な理由があるのでしょうか?
file - ファイルの種類ごとに Vim のインデント動作を変更する
ファイルの種類に基づいて Vim のインデント動作を変更する最も簡単な方法を誰かが簡単に説明してくれませんか? たとえば、Python ファイルを開く場合は 2 つのスペースでインデントする必要がありますが、Powershell スクリプトを開く場合は 4 つのスペースを使用する必要があります。