問題タブ [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 - .vimrc を自動的にソースするときに、グローバルなデフォルトが .vimrc の 'filetype=vim' 固有の設定をオーバーライドしないようにするにはどうすればよいですか?
環境
私は.vimrc
自動的に次のものを調達しています:
間隔のデフォルトも設定します。
後で、FileType
イベントを使用して、上記の間隔のデフォルトをファイルタイプ固有の間隔でオーバーライドします。
問題
私が抱えている問題は、ソース.vimrc
がデフォルト値を設定するが、FileType
イベントをトリガーしないことです。これは、ファイルタイプ固有のスペースを使用してファイルを編集しているときに:write
to my.vimrc
を実行すると、ファイルタイプ固有のスペースがデフォルトで上書きされることを意味します!
更新: Ingo が指摘したように、この問題は.vimrc
他のファイルでのみ発生し、発生しません。
例
例として、私が自分の で作業しているとき、.vimrc
最初はファイル固有のスペース(イベントは my への書き込みによってトリガーされませんでした)デフォルトの間隔が残っています!ts=4 sts=4 sw=4 expandtab
.vimrc
tabstop=2 softtabstop=2 shiftwidth=2 expandtab
FileType
.vimrc
私の質問
デフォルトの間隔をファイルタイプ固有の間隔で上書きし、自動ソースの場合でもこれらを保持するにはどうすればよい.vimrc
ですか?
可能であれば、autocmd を削除せずにこれを達成したいと考えています。それは可能ですか?
私の予感は、ソーシング時に FileType イベントを手動でトリガーする必要があるということ.vimrc
です。これを行うことはできますか?
vim - VIM autocmd corrupts default register
I'm trying to update some text lines containing filenames in specific file in Vim. To do that I've added this in my .vimrc:
It works fine except some artifacts. And question is about how to eliminate those artifacts.
ファイル *_search.txt でバッファに入るたびに、 1)レジスタ "" の内容は、autocmd によってファイル *_search.txt に追加されたテキストに置き換えられます2) vim ステータス行にメッセージが表示されます。 「あと 10 行」または「検索ヒット BOTTOM、TOP に続く」
ありがとう
vim - vim: autocmd が適用されたときに、新しいファイルのディレクトリが現在の作業ディレクトリと一致しませんでした
vim を使用して Python コードを編集し始めています。「.py」などのさまざまなサフィックスに従って、vim でコードをさまざまなフォルダーに保存したいと考えています。
それで、これをgvimrcファイルに追加しました(実際にMacVimを使用していますが、vimでも同じ問題が発生します)
これにより、 「.py」で終わるコードを保存する前に、毎回作業ディレクトリが/Users/username/Documents/folderに変更されると思います。
私がMacVimに入ったときに、新しいファイルを開き、次のように入力しました
そしてそれを保存しました
希望どおり、hello_world.pyという名前のファイルが/Users/username/Documents/folderに表示されました。vim の ":pwd" コマンドも " /Users/username/Documents/folder " を返しました。しかし、vimでhello_world.pyのファイル名を確認すると
それは返す
予想されるファイル名の代わりに
さらに、次のようなコードをアップグレードしようとすると
そしてそれを保存しました
/Users/username/Documents/folderの下のhello_world.pyのコンテンツは変更されていません。しかし、同じhello_world.pyという名前の新しいファイルが/Users/usernameに表示されました。これは vim のファイル名と一致しています。
「.py」ファイルを保存する前に、gvimrc の autocmd スクリプトが作業ディレクトリを変更したと思いますが、ファイル名が作業ディレクトリと一致しない理由と、「.py」ファイルを特定のフォルダ。
vim - vimscriptでバッファ位置を移動する方法
ファイルが開かれたときに特定のファイルの存在を確認するために autocmd を使用しようとしています。ファイルが存在する場合はvsplit
、vsplit バッファーを右に移動します。何かのようなもの:
そのパートのやり方がわかりません<C-w>L
。私が得るのは構文エラーだけです。
CheckForFile 関数でバッファを移動するにはどうすればよいですか?
vim - 特定のファイルタイプのみの実行/切り替えコマンド
Goyo という気晴らしのない書き込み用のこの素晴らしいプラグインを見つけました。これは本当によくできています。ファイルタイプに基づいて Goyo を有効にするようにセットアップautocmds
したので、マークダウンまたはテキストファイルで作業すると、Goyo は自動的に初期化されます。バッファを離れるか、ファイルタイプを変更すると、Goyo が閉じられます。以下は、動作を実装する方法です。
それはうまくいくようです。問題は、これが進むべき道であるかどうか、または問題を解決するためのより良いアプローチがあるかどうかです。
vim - vimrc で autocmd を特定のファイルタイプでのみ実行するように設定するにはどうすればよいですか?
説明:
最近、git リポジトリから .vimrc ファイルを取得しましたが、これまでのところ非常に便利です。付属の便利なツールの 1 つは、ファイルを書き込むときに末尾の空白を自動的に削除することです。
しかし、私はマークダウンを使い始めたばかりで、テキスト ファイルの記述方法が明確な形式であり、それらのファイルを html などのさまざまなタイプに簡単に変換できます。
問題は、マークダウンが 2 つの末尾のスペースを使用して改行を示すことです。私の .vimrc はこれらを自動的に削除します。これを行う autocmd を見つけました。それは:
DeleteTrailingWS は、空白を実際に削除する関数です。
私の質問:
ファイルのタイプがマークダウンでない場合にのみこの autocmd を実行/設定するように変更するにはどうすればよいですか? (.md) 上記の関数だけでなく、一般的な関数を呼び出せるように説明してください。また、複数のファイルタイプでこれを行うにはどうすればよいですか。たとえば、ファイルのタイプが .md、.abcd、または .efgh でない場合にのみ、このコマンドを実行または設定します。
皆さん、ありがとうございました。