2

私は VIM でコード行に終了文字を自動的に追加する方法を模索してきました。私の場合はCSSです。私はこのヒントhttp://vim.wikia.com/wiki/Automatically_append_closing_charactersに出くわし、好きなものに追加する.vimrcように指示するコードを微調整しました

inoremap {      {}<Left>
inoremap {<CR>  {<CR>}<Esc>O
inoremap {{     {
inoremap {}     {} 

だから私が書くとき

body 

次に { と ENTER をすばやく連続して押すと、結果はどうなりますか

body {

}

カーソルがインデントされて 2 行目にあるので、そのブロックにコードを書く準備ができていることに注意してください。

また、私は以下も追加したことを言及する必要があります.vimrc

inoremap ::     :;<Left>   

: と : を立て続けに入力すると、と:;の間にカーソルが置かれるようになります。これはまさに私がなりたい場所であり、すぐにコードを書き始めることができます。:;

問題なく動作しましたが、インストールしたオートコンプリート プラグイン (AutoComplPop VIM プラグインhttp://www.vim.org/scripts/script.php?script_id=1879.vimrc ) が上記の調整と競合することにすぐに気付きました。

たとえば、書き始めるとcolor、すべてのオプションのドロップ オートコンプリート ドロップダウン メニューが表示されます。問題は、オプションcolorが実際にはcolor:.

ここに画像の説明を入力

コロンが既に追加されていることがわかります。選択すると、コロンが既に存在するため、手動で終了;文字を追加する必要があります。これは基本的に、自動追加の終了文字コードを my に追加するという目的全体を.vimrc無効にします。この場合、終了セミコロンを自動追加しないためです。

では、すべての CSS プロパティがコロンで終わらないように、VIM のオムニ補完をカスタム編集するにはどうすればよいでしょうか?

VIM の CSS オートコンプリート オプションで、ここで AutoComplPop に出会いましたhttp://www.vim.org/scripts/script.php?script_id=1879

4

1 に答える 1

1

UNIX ライクなシステムを使用していると仮定すると…</p>

  1. コピー

    /usr/share/vim/vim7x/autoload/csscomplete.vim
    

    ~/.vim/autoload/csscomplete.vim
    
  2. プロパティのリストを生成するループを見つけます。私にとっては 92 行目です。

  3. two の 2 番目のパラメーターからコロンを削除しますadd()

    これらの行:

    call add(res, m . ':')
    call add(res2, m . ':')
    

    なる:

    call add(res, m)
    call add(res2, m)
    
  4. ファイルを保存します。


また、文字の「自動終了」ペア用のプラグインも多数あります。DelimitMateを使用します。

また、この問題は ACP とはまったく関係ありません。

于 2012-08-30T15:43:44.647 に答える