当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-23 18:46 

注册: 2008-09-05 15:21
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
例如文档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也不行,请高手指教!


最后由 leechau 编辑于 2010-06-24 12:28,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-23 20:04 
头像

注册: 2010-06-16 21:37
帖子: 144
送出感谢: 0 次
接收感谢: 0 次
我的怎么不能安装vim


_________________
生活就像强奸

如果不能改变,那就学会去享受


your left brain is nothing right,your right brain is nothing left

对搜狗有希望的一起加油


行行好,注册个115网盘吧


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-25 11:50 
头像

注册: 2009-04-11 23:46
帖子: 4122
系统: Arch Linux
送出感谢: 11
接收感谢: 124
代码:
: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


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-25 18:18 

注册: 2008-09-05 15:21
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
感谢lilydjwg的指点,有两个地方不太明白:
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?
另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-25 21:32 
头像

注册: 2009-04-11 23:46
帖子: 4122
系统: Arch Linux
送出感谢: 11
接收感谢: 124
leechau 写道:
感谢lilydjwg的指点,有两个地方不太明白:
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?


放到你的 .vimrc 里就可以了。如果只是临时用的话,也可以直接敲进命令行,或者存到文件后:source之。

leechau 写道:
另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!


是的!这点和PHP是一样的。


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-27 10:31 

注册: 2008-09-05 15:21
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
lilydjwg 写道:
leechau 写道:
感谢lilydjwg的指点,有两个地方不太明白:
首先
function ...
...
endfunction
command ...
这一段代码是否需要保存成一个文件?路径和文件名如何确定?怎么运行?


放到你的 .vimrc 里就可以了。如果只是临时用的话,也可以直接敲进命令行,或者存到文件后:source之。

leechau 写道:
另外exe一行代码中点号的作用是字符串的连接符吗?
非常感谢!


是的!这点和PHP是一样的。

受教! :em42


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-27 15:25 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
这估计有现成的插件。
简单的事情


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 怎样将编辑区的第一行文本作为文件名保存?
帖子发表于 : 2010-06-27 15:44 
头像

注册: 2009-04-11 23:46
帖子: 4122
系统: Arch Linux
送出感谢: 11
接收感谢: 124
eexpress 写道:
这估计有现成的插件。
简单的事情


太简单了,所以写了代码也没做成插件啊。另外,这个用shell做起来也很容易的呵。


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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