当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : vimrc求援
帖子发表于 : 2008-05-15 9:31 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
学习了一下vim以后,发现非常喜欢这个软件,有点相见恨晚的感觉.突发奇想,打算拿它作为一个随手记录一些东西的工具.但遇到了一些问题,到这里求援了.

首先我的设想是希望一打开vim,见到如下的内容: (论坛里没法保存缩进,我用....代替了.)
=========================
新内容写在此行下:
....
2008年5月14日 23时07分57秒:
....这是已经保存的第一条信息

2008年5月14日 22时08分27秒:
....这是保存的较早的信息

2008年5月14日 21时08分57秒:
....这是保存的更早的信息.
...
...
=========================
使用的时候,基本上是这样的:
一打开文件,我会把最新的内容写在第二行,有一个缩进.
保存的时候,自动把"新内容写在此行下"替换成当时的时间.(这个我已经学会了.)
然后自动在上方插入一个"新内容写在此行下"(这个怎么弄?),
再就是所有保存的信息最好是折叠起来.(看了半天的Help,似乎是要设置foldtext,可不得要领.需要指点.)

总结一下,就是三个需要高手指点一下,
第一是如何在替换第一行为当时时间的时候,再插入一行提示.
第二是如何让记录的信息折叠..
第三是如何在打开文件的时候,光标正好在第二行缩进的位置.


最后由 hahagood 编辑于 2008-05-15 9:36,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-15 9:32 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
。。。。直接shell还方便点。。


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-05-15 9:45 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
yaoms 写道:
。。。。直接shell还方便点。。


我相信用shell应该是一个不错的办法.

可是如果我的记录非常频繁,也许我不想每次保存以后都退出.这样的需求,不知道shell能不能满足?

对于第一个问题,我突然想是不是可以把替换"新内容写在此行下"为当前时间改为替换成:
"新内容写在此行下" \n\t\n 2008年5月15日 09时42分58秒:
我要去试一下看看可不可行.如果行的话,就剩下两个问题,一个是折叠,一个是光标定位.

关于光标定位,我上面说是打开文件时,后来我想了一下,其实应该是每次保存后都需要把光标定位到第二行第一个缩进.


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-05-15 10:30 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
测试了一下,发现加\n\t\n是不行的.vim报错.


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-05-15 10:38 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
从方法上说。用sed自动插入也不错。
折叠,是不记录到文件的。应该用什么插件,调用函数来完成。你的格式解析要带入这函数。光标位置也可能要函数。或者vim可以带-c -s的启动参数,跑Ex命令或者script。


_________________
● 鸣学


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-05-15 11:13 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
我从网上抄了一段代码,可以把第一行替换成当前时间.可是不知道如何再插入新的一行.

autocmd BufWritePre,FileWritePre *.nb ks|call KeepRec()|'s
fun KeepRec()
..if line("$") > 5
....let l = 5
..else
....let l = line("$")
..endif
..exe "1," . l . "g/Keep Record: /s/Keep Record: .*/Keep Record: <Input below>" .
....\ strftime("%Y %m %d %X")
endfun


格式解析和光标位置的函数也许就是需要高手提示我的内容了.


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-05-15 13:00 
头像

注册: 2006-05-19 9:54
帖子: 1822
地址: Shanghai
送出感谢: 2
接收感谢: 11
1.
autocmd的时候,再加入 normal ggyyp
autocmd BufWritePre,FileWritePre *.nb ks|normal ggyyp|call KeepRec()|'s
KeepRec里第一行也改成第二行

2.
折叠写函数交给 foldexpr
fun Aaa()
..if v:lnum > 3
....return 1
..else
....return 0
..endif
endfun

:set foldexpr=Aaa()
:set fdm=expr

3.
autocmd BufRead *.nb normal 2Ge

基本上就是这样了,懒得测试了
强烈支持把vim当作通用编辑器,而不是编程用的,这才是vim的正道


_________________
ニンニク入れますか?
x60 with gentoo


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-05-15 14:01 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
呵呵,多谢了.


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-15 16:03 
头像

注册: 2006-05-19 9:54
帖子: 1822
地址: Shanghai
送出感谢: 2
接收感谢: 11
lz看看好用不好用啊
不好用的话,回家我试试看


_________________
ニンニク入れますか?
x60 with gentoo


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-05-15 16:41 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
稍稍改动了一下,可以用了.以后再优化它吧.先用起来再说.


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-05-15 16:43 
头像

注册: 2006-05-19 9:54
帖子: 1822
地址: Shanghai
送出感谢: 2
接收感谢: 11
恩,还有,可以这些写到filetype plugin里面去,省得vimrc太长


_________________
ニンニク入れますか?
x60 with gentoo


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-05-15 16:53 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
收到!

呵呵.


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-05-15 17:07 

注册: 2006-11-04 9:13
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
顺便提一下,今天看到说,vimperater出新版了,支持ff3b5.刚安装了,正在试用.呵呵.


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译