例如文档1的内容是:
this is doc A
the following is contents
...
要保存为“this is doc A.txt”,文档2的内容是:
that is B
some words more
...
要保存为“that is B.txt”。文档的数量很多,无法对每一文档手工保存,怎样用宏实现?
自己尝试了一下:
:let name = getline(1)
:w name
但保存的文件名是name,而不是name变量的值,改成:w &name也不行,请高手指教!
怎样将编辑区的第一行文本作为文件名保存?
-
- 帖子: 4
- 注册时间: 2008-09-05 15:21
怎样将编辑区的第一行文本作为文件名保存?
上次由 leechau 在 2010-06-24 12:28,总共编辑 1 次。
- ubuntu10.04lts
- 帖子: 144
- 注册时间: 2010-06-16 21:37
Re: 怎样将编辑区的第一行文本作为文件名保存?
我的怎么不能安装vim
生活就像强奸
如果不能改变,那就学会去享受
your left brain is nothing right,your right brain is nothing left
对搜狗有希望的一起加油
行行好,注册个115网盘吧
如果不能改变,那就学会去享受
your left brain is nothing right,your right brain is nothing left
对搜狗有希望的一起加油
行行好,注册个115网盘吧
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 怎样将编辑区的第一行文本作为文件名保存?
代码: 全选
:h :exe
代码: 全选
function Lilydjwg_TSave()
let line = getline(1)
if line =~ '^\s*$'
let line = getline(2)
endif
let line = substitute(line, '[:/\\]', '-', 'g')
let line = substitute(line, '^\s\+', '', 'g')
let line = substitute(line, '\s\+$', '', 'g')
let line = substitute(line, ' ', '\\ ', 'g')
let line = substitute(line, '\r', '', 'g')
exe 'sav ' . line . '.txt'
endfunction
command TSave call Lilydjwg_TSave()
代码: 全选
:h c_ctrl-r
-
- 帖子: 4
- 注册时间: 2008-09-05 15:21
Re: 怎样将编辑区的第一行文本作为文件名保存?
感谢lilydjwg的指点,有两个地方不太明白:
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?
另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?
另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 怎样将编辑区的第一行文本作为文件名保存?
放到你的 .vimrc 里就可以了。如果只是临时用的话,也可以直接敲进命令行,或者存到文件后:source之。leechau 写了:感谢lilydjwg的指点,有两个地方不太明白:
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?
是的!这点和PHP是一样的。leechau 写了: 另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!
-
- 帖子: 4
- 注册时间: 2008-09-05 15:21
Re: 怎样将编辑区的第一行文本作为文件名保存?
受教!lilydjwg 写了:放到你的 .vimrc 里就可以了。如果只是临时用的话,也可以直接敲进命令行,或者存到文件后:source之。leechau 写了:感谢lilydjwg的指点,有两个地方不太明白:
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?
是的!这点和PHP是一样的。leechau 写了: 另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!

- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 怎样将编辑区的第一行文本作为文件名保存?
太简单了,所以写了代码也没做成插件啊。另外,这个用shell做起来也很容易的呵。eexpress 写了:这估计有现成的插件。
简单的事情