我是vi
编辑器的新用户,我想在.vimrc
中创建一个简单的自定义命令,插入类似2012-03-13 22:21:17.0 +0100 / Daniel
的内容。
实际上,我的命令(在.vimrc
中)如下:
command! InsertTime :normal a<C-R>=strftime('%F %H:%M:%S.0 %z')<CR>
我还设置了一个变量:
let myname="Daniel"
InsertTime
完美插入日期。但是,如何将其与变量的内容连接起来?
答案 0 :(得分:2)
要连接,vim脚本使用.
caracter。所以试试这个:
在vimrc中:
let myname="Daniel"
command! InsertTime :normal a<C-R>=strftime('%F %H:%M:%S.0 %z') . "/" . myname<CR>
没有在那里测试过。
答案 1 :(得分:0)
因为你说过你是&#34; vim&#34;我会假设你不知道我告诉你的任何事情。 Mucho对不起,如果你已经认识他们了。
如果您要做很多事情(插入行&#34;%F%H:%M:%S.0%z / Daniel&#34;),而不是定义命令,您必须使用:command_name
调用,定义一个宏和/或输入宏,只需要两个或三个字符即可调用。
要定义输入宏,请在&#39;执行以下操作:&#39;提示,或将其添加到$ HOME / .exrc或$ HOME / .vimrc文件中(不含前面的&#39;:&#39;):
:map <C-X><C-X> Go<ESC>!!date '+\%F \%H:\%M:\%S.0 \%z'<CR>A / Daniel<ESC>
现在当你进入&#34; vi&#34; (但不是在输入模式下),键入control-Xcontrol-X
将:
G go to last line in file; replace this with the "motion" keys sequence appropriate for your use (or nothing at all if you want to append the line right after the cursor)
o open a new line
<ESC> escape out of input mode
!!date ... invoke the date command, replace the current line with its stdout (output)
A append at the end of the line (now having the "date")
/ Dan... verbatim intput text
<ESC> escape out of input mode
control-Xcontrol-X
可能是一些不常见的序列,您通常不会将其用于任何内容,也不会被任何&#34; vi&#34;您可能会使用的操作。我用作第一个字符,因为在&#34; vi&#34;中,减少光标后行上的下一个整数(如果有的话)。这是我几乎从未做过的事情。我定义了要使用<C-X><C-B>
,<C-X><C-D>
,<C-X>s1
等方式调用的宏。
创建输入宏,那是另一个完整的主题,我今天已经厌倦了打字,所以,另一天。 :)