Vi & Vim

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

1
通常のパッケージマネージャーの代わりにvim-addon-managerを使用する必要があるのはいつですか?
Debianベースのシステムには、という名前のパッケージがありますvim-addon-manager。 私の理解では、利用可能なプラグインのリポジトリに基づいて、いくつかのプラグインをインストールすることができます。それらをインストールできるようにするには、プラグインをパッケージ化してdebianリポジトリにプッシュする必要があります。 github、git repo、またはローカルフォルダーからプラグインをインストールできる他のプラグインマネージャーよりも柔軟性が低く、並列インストールや遅延読み込みなどが可能であるため、このパッケージのポイントがわかりません。 .. そもそも、パッケージは他のプラグインマネージャーの前に作成された古いソリューションであり、多分非推奨であると思っていましたが、そのgitリポジトリは開発がまだアクティブであることを示しているようです。 だから私の質問は: vim-addon-managerと他のプラグインマネージャー間で利用可能なプラグイン以外に違いはありますか?もしそうなら、どの違いですか? パッケージと他のマネージャーは同じ目的のためのものですか、それとも補完的なものですか 他のプラグインの代わりにパッケージを使用する方が便利なのはどのユースケースですか? 私の質問はこれに触発されていますが、ここではパッケージの使用方法を尋ねているのではなく、なぜ誰かがそれを必要とするのかを尋ねていることに注意してください。

1
GNU画面でVimの通常モードと挿入モードのカーソルが変更されない
私はvimをいくつかの異なるコンテキストで使用しています。通常、私はこれを私の中に入れたい.vimrcです: let &t_ti.="\<Esc>[1 q" let &t_SI.="\<Esc>[5 q" let &t_EI.="\<Esc>[1 q" let &t_te.="\<Esc>[0 q" これにより、挿入モードと通常モードで異なるカーソルが使用されるようになります(通常モードはブロックカーソルであり、挿入モードは垂直線です)。これは、minttyでcygwin、xterm、およびrvxtを使用してうまく動作します。ただし、GNU画面を使用するたびに、カーソルが変化しなくなりました。これをtmuxで修正するための参照(たとえば、ここではvim + tmuxでのカーソルの形状)を見てきましたが、Screenで試したことは何もありません。今のところ、私はこれを私の中で使用してい.vimrcます: "Underline currently edited line if !has("gui_running") :autocmd InsertEnter * set cul :autocmd InsertLeave * set nocul endif これにより、挿入モードで現在の行に下線が引かれます(これ:has("gui_running")により、gvimで有効になりません)。またset laststatus=2、ステータスバーを下部に表示するためにも使用します。これも役立ちます。私はそれがgvimのようにもう少しうまくいくことを願っています。誰かがこれに対する修正を見つけましたか?

1
=〜演算子の使用法
VimScriptの正規表現比較演算子について少し混乱しています。 :h =~?私の理解をよく見ると、=~これは正規表現一致を行うために使用できます(?大文字と小文字を区別しないようにすることで)。 しかし、このコードは "no"を出力します: let s:myVar = "S123" if s:myVar =~? "^S\d+" echo "yes" else echo "no" endif =~演算子を間違って使用していますか?

2
特定の拡張子を持つファイルを開くときに特定のvimコマンドを実行するにはどうすればよいですか?
末尾がすべてのファイルの.tex行長を80にしたいので.tex、vimでファイルを開くたびに、と入力し:set tw=79ます。これを自動化するために.vimrcに何を入れますか? 私はファイルタイプの特定のリストとの仕事にそれを望んでいたならば、言う、.md、.txt、と.tex?
9 vimrc  filetype 

2
特定の線を完全に非表示にする(折り畳みではない)
バッファ内の特定の行を非表示にして、表示を切り替えることができるようにしたいと考えています。同様の質問が見つかりましたが、問題は解決しません。これには折り目を使いたくありません。 正確に何が欲しいですか? ドキュメントを開いたとき、Vimにコメント行が読み込まれないようにしたい。これらの行がドキュメントにまったく存在しないかのように動作する必要がありますが、例外が1つあります。表示されていないコメントであることを示す視覚的なインジケーター(たとえば、横の追加の列)が必要です。 特定のキーの組み合わせを押すと、すべてのコメントが表示されます(つまり、通常のVimの動作)。 コメントが表示されない状態でドキュメントを変更できるようにしたい。保存すると、ドキュメント全体がコメント付きで保存されます(コメントは常に最初の行の下にあったテキストの1行上に保存されます)。 なぜこれが欲しいのですか? 見た目がよくなり、見た目がより楽しくなります。.vimrc例を挙げましょう。すべての設定を互いにうまく組み合わせることができます。何かを変更したい場合、またはこのように設定する理由がわからない場合は、コメントを切り替えてください。

2
Vimscript:自動読み込み、スコープ、<SID>のヘルプ
私は自分のコードをモジュール化してvimrc、いくつかの自己完結型で再利用可能なバンドル/プラグインプラグインに変換する作業を行っています。理解できないオートロードとスコープの問題に遭遇しました。私はを読みました:h autoload、:h &lt;sid&gt;、:h script-local、私はどのようにこの作品にはまだ非常に明確ではありませんよ。 私はいくつかのよく開発されたプラグインを調べて、一般的に使用されるパターンを理解し、プラグインを次のように構成しました。 " ~/.vim/autoload/myplugin.vim if exists('g:loaded_myplugin') finish endif let g:loaded_myplugin = 1 let g:myplugin_version = 0.0.1 " Save cpoptions. let s:cpo_save = &amp;cpo set cpo&amp;vim function! myplugin#init() " {{{ " Default 'init' function. This will run the others with default values, " but the intent is that …
9 vimscript 

1
関数内のvimL睡眠
私は、十字カーソルを100ミリ秒間置いてカーソルの位置を簡単に確認できる関数を定義しようとしています。 これが私の試みです: function! Flash() set cursorline cursorcolumn sleep 100m set nocursorline nocursorcolumn endfunction nnoremap &lt;leader&gt;fl :call Flash() ただし、上記の関数は2つの「セット」呼び出しの間ではなく、最初にスリープを呼び出しているようです。 私が誤解している「睡眠」についての基本的なものはありますか?
9 vimscript 

2
Ctrl + sのマッピングが機能しない
Ctrl+ をマップsしてファイルを保存しようとしていますが、機能しません。 私のマッピング: map &lt;C-s&gt; :w &lt;CR&gt; :echo "Saved" &lt;CR&gt; imap &lt;C-s&gt; &lt;Esc&gt; :w &lt;CR&gt; :echo "Saved" &lt;CR&gt; i 挿入モードでは/:echo "Saved"、代わりに下隅に表示され、saved通常モードでは同じものが表示されます。何が悪いのですか? これは私のvimrcの最上部にあるので、他のコードが問題を引き起こしていないはずです。OSXターミナル内でVimを実行しています。

1
VIMでのHTML構文の折りたたみ?
HTMLファイルに構文の折りたたみを使用するのに最適な方法はどれかと思いました。特に、&lt;script&gt;タグ内のJavaScriptコードを認識できる場合。 入力しましたset foldmethod=syntaxが、折りたたみを行っていないようです。.vimrcに何か他のものを追加する必要がありますか? たとえば、JavaScriptの場合は追加する必要let javaScript_fold=1があることはわかっていますが、HTMLに同様のものを追加する必要があるかどうかはわかりません。 ありがとう!

5
ファイルが現在のディレクトリに存在しない場合、vimでファイルの一連のディレクトリを検索するにはどうすればよいですか?
を編集する場合はzshrc、次のように入力します。 vim .zshrc フルパス(~/.zshrc)を指定しないと、別のディレクトリにいる場合、代わりに新しいファイルが開始されます。私は一つだけ持っているので、これは非常に迷惑である.zshrc中、~、一つだけvimrcでは、~/.vim/。だから、どのように私はオープンにvimのですか~/.zshrcまたは~/.vim/vimrc私が行うとき、vim .zshrcまたはvim vimrc他のディレクトリに? 個々のファイルごとにいくつかの構成を作成することは1つの方法ですが、私はの線に沿って何かを考えていましたCDPATH。CDPATHは、cdディレクトリを探すパスのリストを含む一部のシェルの変数です。たとえば、がありCDPATH=:/home/muru、という名前のディレクトリが含まれていない任意のディレクトリにいた場合Desktop、を実行cd Desktopして到達できます/home/muru/Desktop。シンプル、エレガント、柔軟。編集するファイルを探す場所vimがある場合は、VIMPATHそれが最良のオプションです。

1
コマンドとは!-bang -nargs = * vimrcファイル内?
私はvim に関するドキュメントを読み、著者は.vimrcに挿入する必要があるコード行を提案していますが、それが何であるかはまったくわかりません。 command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --no-ignore --hidden --follow --glob "!.git/*" --color "always" '.shellescape(&lt;q-args&gt;), 1, &lt;bang&gt;0) だから何であるcommand!、-bang、-nargsなど、?
9 vimrc 

1
行へのジャンプを自動的に展開する方法
行(:76)にジャンプすると、折り目になってしまいますが、開きません。 折りたたみをすばやく展開して正しい行に移動できますが、キーストロークを保存するために折りたたみを自動的に展開させたいです。 これを達成する方法はありますか?
9 folding 

3
Markdownの編集時にクリップボードの画像へのリンクを貼り付け
クリップボードに画像があり、テキストとしてドキュメントに貼り付けたい[](img/image1.png)。 最初にそれをそのディレクトリにコピーする代わりにp、Vimで1回キーを押すだけでそれを実行したいと思います。したがって、フックしてp、Markdownファイルを編集しているかどうかを確認し、画像をクリップボードからその場所img/image1.pngに[](img/image1.png)保存して、ファイルに挿入します。 これはVimで可能ですか? 私はmacOSとターミナルVimを使用しています。

2
ファイルシステムにアクセスせずにvimで安全なデータを編集する方法はありますか?
vimを使用して「安全な」ファイルを編集することに興味があります。このファイルは、暗号化されて他の場所(たとえば、クラウドのどこか)に保存され、ローカルディスクにプレーンテキストとして書き込むべきではありません。したがって、イベントのシーケンスは次のようになります(別個のラッパースクリプトまたは非vimステップ1、2、5の場合): クラウドから暗号化されたファイルを取得する ファイルを復号化し、プレーンテキストをvimに渡して編集するためにvimを起動します(おそらく新しいファイル記述子を上書きしますか?) vimでインタラクティブに編集する を使用してファイルが書き込まれた場合、:w結果を書き込みます(ここでも、ファイル記述子を使用しますか?) 新しい平文を暗号化してクラウドに保存する 現在、この種のことを行う通常の方法は、復号化、一時ファイルの書き込み、vimでの一時ファイルの編集、一時ファイルの読み取り、暗号化、一時ファイルのワイプ/削除であることを理解しています。私が探しているのは、一時ファイルをまったく使用しない方法です。(また、Vimをプライベートモードで起動する最も簡単な方法のすべてが設定されます。) これに取り組む別の方法はnetrw、私があまり知らないようなを使用することかもしれません。 この質問では、OSスワップデータについては気にしていません(ただし、内部データバッファーをスワップ不能としてマークするvim方法がある場合は、興味深いでしょう)。 上記を行う方法はありますか、それとももっと良い方法はありますか?

2
通常モードでCtrl-Zを無効にする
Ctrlz通常モードでを押すと、gVimが「最小化」されるか、vim(gVimではない)でシェルに戻ります。 この機能を無効にしたいのですが マップを解除できませんCtrlz:unmap &lt;c-z&gt;戻りますno such mapping と呼ばれるオプションはなくsuspend、使用することができますunset suspend。 私はそうしました:help suspendが、ドキュメントは「一時停止」を無効にすることについては何も述べていません。
9 gvim 

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