2

これを行うにはおそらくもっと良い方法がありますが、これが私がやろうとしていることです。コンテンツを更新する前にメタタグを更新する必要があるいくつかのhtmlファイルがあります。次のようなキーボードマッピングを使用して、これを自動化しようとしています。

nnoremap <leader>mt /<meta name="developer"<cr>f";;lct"$username

これは、$username一部を除いて機能するようです。マッピングに変数を評価させるにはどうすればよいですか?

ページごとに更新するタグがいくつかありますが、他にこれを行う方法がわかりません。誰かがもっと良い方法を持っているなら、私はそれを聞いてとても幸せです。私が検索しているコンテンツは次のようなものです。

<meta name="owner" content="someowner">
<meta name="developer" content="somedev">
<meta name="date" content="2012-07-26">
<meta name="expires" content="2013-07-26">

date編集するためにファイルを開いた日付になりますがexpiresdate

注:これは、状況が変わる場合のWindowsのgvimです。

4

2 に答える 2

3

$usernameは環境変数を参照しますusernameが、これをマッピングで使用するには、Vimの(やや直感的ではありませんが、完全に一貫性のある)解釈ルールに固執する必要があります。

ダブルクォートまでct"平均変化なので、以下は挿入モードです。環境変数(またはその他のVim式)を挿入するには、次を使用します。<C-R>=

nnoremap <leader>mt /<meta name="developer"<cr>f";;lct"<C-R>=$username<CR>

これにより、各マッピング呼び出しで環境変数が評価されます。(そして、挿入モードのままです。追加<Esc>して通常モードに戻ります!)または、値をマッピング自体にベイクすることもできます。

execute 'nnoremap <leader>mt /<meta name="developer"<cr>f";;lct"' . $username
于 2012-07-30T13:29:20.563 に答える
0

これが最善の解決策かどうかはわかりませんが、UNIXマシンのユーザー名については、vimから外部コマンドとして「whoami」コマンドを呼び出し、後で再利用できるようにその戻り値を変数に保存できます。

日付については、vimにstrftime()関数があります。VimEnterイベントの自動コマンドを追加し、その時点の時刻/日付を変数に保存して、後で再利用することもできます。

于 2012-07-30T13:24:35.963 に答える