問題タブ [autocmd]
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 - autocmd とテンプレート ファイルを使用して、新しいファイルの行頭にバックスラッシュを挿入する方法
このガイドに従って、ファイル拡張子に基づいて、さまざまな種類の新しいファイルにさまざまなヘッダー テンプレートを自動的に挿入しました。
それはうまくいきます!新しい .py ファイルを開くと自動的に挿入される Python ソース ファイルのカスタム ヘッダーがあります。
新しい.texファイルを開いたときに基本的なLaTeXテンプレートが挿入されるように、同様のことをしたい...
私がそれを機能させることができないことを除いて...
私の ~/.vimrc はこう言っています:
そして私のtex_template.txtはこれを言います:
しかし、次のような新しいファイルを開くと:
(test.tex がまだ存在しない場合)
私はこれを得る:
tex_template.txt からバックスラッシュを削除すると、新しいファイルが documentclass[a4paper,12pt]{article} で開かれるため、問題は行頭のバックスラッシュにあるようです。それ以外の場合はtexコマンドシーケンスではないため、バックスラッシュが必要です。
vim - Vim でのフック コマンド (runtime、source、echo、echom、echoerr)
私はvimの「ロギング」プラグインに取り組んでいます。「source」、「echo」、「echom」、「echoerr」への呼び出しをフックしようとしています。私の知る限り、通常、「イベント」で任意のコードを実行する方法は、autocmd-event で autocmd(grp) を使用することですが、この方法でこれらのコマンドをフックすることはできないようです。
他にどのようにこれが可能になるかについての提案はありますか?
編集:
私は現在これを少しいじっていて、私が取り組んでいることをここの要点に押し込みました:
vim - vim autocmd BufNewfile が複数回実行されました
~/.vimrc のみが含まれています
~/config/vim/vimrc には、通常のオプション、いくつかのマッピング、およびさまざまなファイルタイプのソースファイルが含まれています。
そして、そのファイルで、次の関数を定義しました。これは、二重の包含を避けるために、新しい cpp ヘッダーを開くたびに呼び出す必要があります。
そして、シェルに次のことを要求すると:
私が得た:
それはまさに私が望んでいるものではありません.私の間違いがわかりますか?ありがとう。
vim - Vimrc autocmd は、マッピングの代わりにコマンドを実行します
Python ファイルを実行するために vim にホットキーを追加したいので、次の行を vimrc に追加しました。
しかし、autocmd を実行する代わりにファイルを開くと、私のファイルで python が実行されます。
私にとって、これはautocmdとmapの使用に関する多くのチュートリアルで提案されているものと変わらないように思われるので、私が期待する動作ではなく、ここで何が起こっているのかを正確に知りたい.
vim - 縮小と拡大のための異なる VimResized autocmd
autocmd VimResized * <foo>
<foo>
vim アプリケーションのウィンドウのサイズが変更されるたびにコマンドが実行されます。サイズ変更が縮小か拡大かによって異なるコマンドを実行する方法はありますか? もしそうなら、コンソール vim に関する警告はありますか?
vim - vim 関数は初回のみ正常に動作します
「貼り付け」モードでテキストを挿入する関数をvimで作成しました。挿入モードを終了すると、スクリプトも貼り付けモードを終了します (nopaste を設定)。したがって、自動コマンド InsertLeave を使用しました。
問題は、「set paste」コマンドが関数を最初に呼び出したときにのみ機能することです。もう一度呼び出したい場合は、vim を再起動する必要があります。
これはvim関数です:
私は何を間違えましたか?
vim - BufWritePre の Vim 複数の autocmd
と の両方Chiel92/vim-autoformat
を使用していntpeters/vim-better-whitespace
ます。1 つ目はオートフォーマット コード用で、2 つ目は余分な空白を削除するためのものです。どちらも autocmd を使用して、保存ファイルでそれらを呼び出すことを望んでいます。autocmd を正しく使用していないようです。vimLについての知識がほとんどないので、誰かが私を助けてくれることを願っています.
保存時にオートフォーマットを有効にするために、以前は次のものがありました。
また、保存時に余分な空白を取り除く「ntpeters/vim-better-whitespace」も使用しています。
問題は、それぞれが単独で完全に機能することです。しかし、それらを .vimrc にまとめると、スクリプトの最初に現れる人によっては、少なくとも 1 つが機能しなくなります。
:au BufWritePre をダンプした後の結果は次のとおりです。
アップデート ...
しばらく遊んだ後、保存時に自動フォーマットする方法を変更することで、次のことがわかりました。
両方とも相互に連携できます。
誰かがここで何が起こっているのかを理解するのを手伝ってくれますか? ありがとう!
vim - Vimは挿入モードでのみマウスを無効にします
挿入モードで、手のひらが誤ってトラックパッドに置かれたために、カーソルが移動することがありました。そこで、autocmd を作成して、挿入モードでマウスを無効にし、通常モードで有効にしたいと考えています。
私は次のように書きます。
マウスを無効にしました。しかし、挿入モードを終了すると、マウスがアクティブになりません。
これを機能させる方法は?
InsertLeave
編集: を使用しているときにトリガーされないことがわかりましたCTRL_C
。残念ながら、私はいつもCTRL_C
挿入モードを終了するために使用します。これに対する回避策はありますか?
UserGettingBored
編集2:私もイベントを見つけました。しかし、このイベントは単なる冗談のようです。