在 MS Notepad 中我可以创建如下文件:
.LOG
I updated function xyz(), line 32 today.
保存它,然后当我打开它时:
.LOG
I updated function xyz(), line 32 today.
25-10-14 8:04:56
gedit
我怎样才能在或 Ubuntu 的类似程序中实现相同的功能?
答案1
我不确定记事本在这里的具体行为。虽然我不知道如何vim
根据文件中现有的一些文本做到这一点,但我可以vim
对具有特定扩展名的文件执行类似操作,方法是将其添加到~/.vimrc
:
au BufWritePre *.log :normal G"=strftime("\n%b %d, %Y %X\n")^Mp
解释:
au
- 代表AutoCommand
,vim
针对某个事件执行某个动作的方式。BufWritePre
-vim
写出文件之前发生的事件。*.log
- 执行此操作的文件(您可以选择其他扩展名):normal
- 进入正常模式(您启动时通常处于的模式vim
)G
- 转到最后一行"=strftime("\n%b %d, %Y %X\n")^M
"
- 将函数的输出复制到默认缓冲区 ( ) 中strftime
(^M
是文字换行符,通过按CtrlV,然后获得Enter)p
- 然后粘贴缓冲区。
每次我使用写入文件时:w
,当前日期都会附加到文件中:
$ vim test.log
$ vim test.log
$ cat test.log
I did some work.
Oct 26, 2014 01:15:55 IST
Didn't I?
Oct 26, 2014 01:16:02 IST
G
这是相当可定制的。您可以选择文件扩展名,如果要在当前行后附加日期,则可以省略,修改时间格式,使用其他事件(请参阅:h autocmd-events
)。
答案2
我已经使用记事本的“.LOG”功能好几年了,并且已经相当依赖它了。我对您的回答并不像这里的一些回复那样复杂(我怀疑这是因为我不像一些试图帮助您的人那样精明……)当微软放弃 Microsoft XP 操作系统时,我决定冒险将我的旧 XP 机器移植到 Debian Linux。(顺便说一句,我对 Debian Linux 的爱远不如对人类婴儿的爱…… ;o)!)无论如何,由于遇到与您相同的困境,我只是安装了 WINE 并在其中使用了记事本。希望这对您有所帮助。