Vi & Vim

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

1
特定の拡張子を持つファイルを書き込むときにbashコマンドを実行しますか?
.lessファイルを書き込み、保存し.cssて、同じ名前で同じディレクトリに対応するファイルを生成するときに、bashコマンドを実行したいと思います。.cssファイルを生成するbashコマンドがあります。 vimでの作業と私のの一部の変更を除いて、vimscriptに慣れ.vimrcていないので、これを機能させる方法がわかりません。 要約すると: どのようにbashコマンドを実行し:wますか? 現在のファイルディレクトリ(vimscriptまたはbash)を取得するにはどうすればよいですか? 現在のファイル名(vimscriptまたはbash)を取得するにはどうすればよいですか?
7 save  autocmd  linux  bash 

1
コロン表記を使用して、指定された行でファイルを開きます
私はよくgrepパターンを検索し、vimでファイルを開くために使用しています。 たとえば、次の結果がシェルにあります。 interactions/BlockInteraction.js:38: .concat(this.prompt.postRender({}, '', renderer)) Container.js:151: postRender : function(data, altClassName, renderer){ Container.js:156: return typeof elt.postRender === 'function'; Container.js:159: return elt.postRender(data, '', renderer); 私の生産性を高めるものは、path:lineパターンを使用してvimでファイルを開くことができることです: vim interactions/BlockInteraction.js:38 それを達成する方法はありますか?

1
構文の強調表示によってカーソル線の背景色を上書きする
現在の行の背景色を次のように薄い灰色に設定しました。 hi CursorLine cterm=NONE ctermbg=253 (私の配色は白地に黒であることに注意してください。) ただし、このようにして、構文の強調表示で設定された背景色が上書きされます。つまり、現在の行の単語が強調表示されている場合(たとえば、白地に赤)、テキストは白地に灰色で表示されます。カーソルを別の行に移動すると、その行(またはその一部)が赤で強調表示されるはずです。 私が欲しいのは、特別な背景色が設定されていない現在の行の部分だけがカーソルラインによってライトグレーで強調表示されることですが、カーソルラインの強調表示は構文の強調表示によって上書きされます。 これは可能ですか? PS:この問題が発生した特定のケースは、git commit tmp-fileの2行目で、2行目のテキストは(理由は問わず)赤白になっています。

2
オートコンプリート中にfoldexprを無効にする方法はありますか?
vimのfoldメソッドがオートコンプリートの効率に影響を与えることに気づきました。たとえばC-N、低速で、C-X L比較的高価なfoldexprs を含む中サイズのファイルではひどく遅いです。 オートコンプリートの実行中にfoldexprを参照することの価値がわからないので、これを何らかの方法で無効にして、使用可能なオートコンプリートを取得できるようにします。 助言がありますか? 編集:テストケース テストケース:プラグインなし。これだけで、これは可能な限り最小の foldexpr関数でなければなりません(呼び出しを数えることを除いて、完全に役に立たない).vimrc: let g:c = 0 function! Myfoldexpr() let g:c = 1 + g:c return '0' endfunction 空白のドキュメントからvimを起動します。Vim独自のヘルプファイルの最初の100行をコピーし、オートコンプリート行を実行して、10番目の提案を選択し、foldexprが呼び出された回数を確認します。 :help y100j:q P:set foldexpr=Myfoldexpr() :set fdm=expr O<C-X><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><Esc> :echo g:c 2088 これは、100行のファイルで、比較的短い行であり、foldexprは2088回呼び出されました(ただし、最初にfoldexprを設定するときにこれらの100が実行されます)。効率的なfoldexprは明らかに優れていますが、プログラマーは多くのfoldexprに質問するため、それらは必ずしも自明ではなく、実行時間が数千倍になると、オートコンプリートまたはインデントのどちらかを選択して生産性を高めることができます。貪欲/怠惰であること両方を使用できるようにしたいと思います!かなりよく確立されたいくつかのfoldexprベースの折りたたみプラグインを書き直そうとする以外に(phpの折りたたみを書き直してみましたが、何日か実行可能な状態に最適化しようとしたので、phpのfoldexprをあきらめました)、おそらく使用する方法がありますfdm=manualオートコンプリートなどの前にマッピングする必要がありますか?



4
:NERDTreeFindで初めて開いたときにNERDTreeを現在のフォルダーにCDに設定する方法
与えられた: $ cd ~/Sites/project project $ vim :NERDTreeFind ~/Sites/projectルートフォルダーとしてNERDTreeを開いてほしいです。 代わりに~/Sites、projectフォルダが選択された状態で表示されます。だから私はcd毎回workフォルダに行かなければなりません。 そのための設定があるはずですが、見つかりません。助けて。


2
レジスタで置換を使用するにはどうすればよいですか?
文字列が格納されているものを登録したとしましょう。ただし、置換コマンドを使用して変更したいとします。 たとえば、5x5のhtmlテーブルがあります。 let @t='<table>'.repeat('<tr>'.repeat('<td>_</td>',5).'</tr>',5).'</table>' そして、プレースホルダー(_)を既存のレジスターを変更する(別のレジスターに割り当てるのではなく)ことによって理想的には他のデータに置き換えたいと思います。 私は次の構文を試しました: "ts/_/test/g "@ts/_/test/g " with modifiable set エラーは発生しませんが、期待どおりに機能しません(prefixが%機能するのと同じように)。 それを行う適切な方法は何ですか?

1
変更されたバッファを一時ファイルに書き込む
現在編集中の変更されたバッファーを一時ファイルに定期的に書き込みたいのですが。バックグラウンドで、たとえば、外部ツールを使用してファイルを分析できます。 このプロセスでファイルを実際の場所に書き込みたくありません-通常の:wコマンドを使用してユーザーにその処理を任せます。 CursorHold自動コマンドによって呼び出されるvimscriptでこれを行うにはどうすればよいですか?Vim 7.4以降で問題ありません。


1
VimでFont Awesomeを表示する方法
ttf-font-awesomeArch Linux にインストールしました。Font awesomeのアイコンを含むファイルを開くと、ファイルはutf-8として認識されますが、アイコンは正方形として表示されます。誰かがこれを修正する方法を知っていますか?
7 gvim  font  linux-arch 

3
Ruby、SASS、Slim、Coffescriptのタグを設定する方法は?
SASS、Slim、Coffeescriptを使用してRailsでmainを開発しています。Exuberant Ctagsをインストールし、tpopeのセットアップを使用しています それは一種の働きをするので、少なくとも私はルビコードを動き回ることができます。 しかし、私はできるようにしたいと思います: SASS color: $whatever <- go to that color @extend %something <- go to that mixin +another() <- go to that include HTML/SLIM .nice_class <- go to that class in .sass file #id <- find JS files using this #id RUBY has_many :something <- go to that …



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