5

新しいファイルを開いたときに、ファイルタイプに基づいて Vim にコメント ブラーブを作成させる方法はありますか?

私はVimが初めてです。ここに私が探している機能があります。私がする時:

$ vim hello.py

ファイルを次のように開始します。

#Date Created: 24 May 2012
#Last Modified: (This is optional, really)
#Summary: (enter short summary of program here) 
#Author: My Name
#License: ...

など。いろいろ調べましたが、これを行うための解決策が見つかりません。

4

3 に答える 3

4

以下を使用して、スケルトン ファイルなしでこれを行うことができます。

 autocmd BufNewFile *.py exe "normal O#Date Created: " . strftime("%d %b %Y") . "\r#Last Modified:\r#Summary:\r#Author:\r#License:\r"
 autocmd BufWritePre *.py exe "%s/^#Last Modified:.*$/#Last Modified: " . strftime("%d %b %Y (%T)") . "/e"

それらをvimrcに入れてください。

潜在的な問題は、 が次で始まるすべてのautocmd BufWritePre行に現在の時刻を追加することです。

#Last Modified:
于 2012-05-25T03:21:35.473 に答える
3

これはvimのautocmdヘルプでカバーされています..特にあなたはこれが欲しいです

于 2012-05-25T02:55:01.897 に答える
1

この答えはpb2qに基づいていますが、より拡張性があります。作成を行う関数を定義して、さまざまなコメントタイプに使用できるようにします。

function UpdateModifiedTime(comment)
    let savedPosition = getpos(".")
    call cursor(1, 1)
    let modified = a:comment . 'Modified:'
    if search(modified, 'e') > 0
        execute 'substitute/' . modified . '.*/' . modified . ' ' . strftime('%b %d, %Y %T') . '/'
    endif
    call setpos(".", savedPosition)
endfunction

(注:ゴルフをしている場合を除いて、Vimのスクリプトでは可能な限り長い形式を使用するのが私の習慣です。コードの読みやすさを重視し、通常のコマンドは難解だからです)。

次に、次のような自動コマンドを定義できます。

autocmd BufWrite *.sh,*.ksh,*.bash       call UpdateModifiedTime('## ')
autocmd BufWrite *.vim                   call UpdateModifiedTime('" ')
autocmd BufWrite *.py                    call UpdateModifiedTime('')
autocmd BufWrite *.c                     call UpdateModifiedTime('// ')

Pythonに空のコメント文字を付けたことに注意してください。これ'''は、コメント用のファイルヘッダーに文字列が含まれていたためです。あなたは'# 'または'## 'またはあなたの空想をくすぐるものを使用することができます。

で同様のことができますCreated

于 2012-09-22T13:26:00.163 に答える