介紹如何在 Vim 編輯器中快速插入目前的日期與時間。
strftime
內建函數
若在 Vim 編輯器中需要插入目前的日期與時間,可以使用 strftime
這個內建函數,例如:
:put =strftime('%c')
或是這樣寫也可以:
:put =strftime(\"%c\")
執行之後,就會插入這樣的日期與時間資訊:
strftime
內建函數支援各種日期與時間的格式,以下是常見的一些範例格式以及執行結果:
格式 | 範例 |
---|---|
%c |
2021年11月30日 (週二) 19時07分23秒 |
%a %d %b %Y |
二 30 11月 2021 |
%d/%m/%y %H:%M:%S |
30/11/21 19:09:03 |
%Y-%m-%d |
2021-11-30 |
%T |
19:13:56 |
%a, %d %b %Y %H:%M:%S %z |
二, 30 11月 2021 19:15:17 +0800 |
若要更改日期或時間的格式,可以自行替換 strftime
的格式參數,而關於 strftime
詳細的格式用法,可以參考其線上手冊:
# 查看 strftime 線上手冊
man strftime
快速鍵插入日期
如果希望設定在一般模式(normal mode)與插入模式(insert mode)都可以透過 F5 快速鍵來插入日期與時間,可以在 .vimrc
或 .gvimrc
設定檔中加入以下設定:
" 設定以 F5 快速鍵插入日期與時間 nnoremap <F5> "=strftime("%c")<CR>P inoremap <F5> <C-R>=strftime("%c")<CR>
以縮寫插入日期時間
另外一種快速插入日期與時間的方式是採用 Vim 的縮寫功能,在 .vimrc
或 .gvimrc
設定檔中加入以下設定:
" 設定以 dts 縮寫插入日期與時間 iab <expr> dts strftime("%c")
加入這個設定之後,只要在 Vim 插入模式之下輸入 dts
這個單字,Vim 就會自動將其替換為目前的日期與時間。
以日期時間取代文字
若要在 Vim 編輯器中,將指定的文字取代為目前的日期或時間,可以將 strftime
套用在取代指令中,例如:
:s/YOUR_TEXT/\=strftime("%c")/
這樣就會把 YOUR_TEXT
取代為目前的日期與時間。
讀取外部 date
指令輸出
除了使用內建的 strftime
函數之外,也可以讀取外部 date
指令所輸出的日期與時間資訊,例如:
:r !date
執行結果會像這樣:
如果是在 Windows 平台上的 Vim 編輯器中則可改用以下方式呼叫 date
指令:
:r !date /t
我們也可以透過 date
支援的格式參數來調整日期與時間的格式,例如:
:r !date "+\%F"
2021-11-30
甚至是取得兩天之前的日期資訊:
:r !date "+\%F" -d "-2 day"
2021-11-28