如何在VIM的map功能中引用正在编辑的文件名?

Vim、Emacs配置和使用
回复
aikilis
帖子: 12
注册时间: 2011-06-08 13:26

如何在VIM的map功能中引用正在编辑的文件名?

#1

帖子 aikilis » 2011-10-21 17:17

RT,我想实现一键编译并执行

map <F3> <Esc>:w<CR>:make<CR>:./<filename><CR>

就是这个filename該怎么做?

还有map可不可以有参数呢?

非常感谢!
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#2

帖子 cjxgm » 2011-10-21 19:17

aikilis 写了:RT,我想实现一键编译并执行

map <F3> <Esc>:w<CR>:make<CR>:./<filename><CR>

就是这个filename該怎么做?

还有map可不可以有参数呢?

非常感谢!
LZ 试一下这样行不行

代码: 全选

map <F3> <Esc>:w<CR>:make<CR>:execute '!./' . substitute(bufname("%"), '\.\i\+$', '', "g")<CR>
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#3

帖子 Fermat618 » 2011-10-21 23:35

编译不成功怎么办?
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
aikilis
帖子: 12
注册时间: 2011-06-08 13:26

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#4

帖子 aikilis » 2011-10-21 23:40

cjxgm 写了:
aikilis 写了:RT,我想实现一键编译并执行

map <F3> <Esc>:w<CR>:make<CR>:./<filename><CR>

就是这个filename該怎么做?

还有map可不可以有参数呢?

非常感谢!
LZ 试一下这样行不行

代码: 全选

map <F3> <Esc>:w<CR>:make<CR>:execute '!./' . substitute(bufname("%"), '\.\i\+$', '', "g")<CR>
成功了!!非常感谢!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#5

帖子 lilydjwg » 2011-10-21 23:50

cjxgm 写了:
aikilis 写了:RT,我想实现一键编译并执行

map <F3> <Esc>:w<CR>:make<CR>:./<filename><CR>

就是这个filename該怎么做?

还有map可不可以有参数呢?

非常感谢!
LZ 试一下这样行不行

代码: 全选

map <F3> <Esc>:w<CR>:make<CR>:execute '!./' . substitute(bufname("%"), '\.\i\+$', '', "g")<CR>
bufname 中含有路径怎么办?

https://github.com/lilydjwg/dotvim/blob ... pp.vim#L66
lymslive
帖子: 72
注册时间: 2010-09-02 19:47

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#6

帖子 lymslive » 2011-11-02 21:37

expand("%:p:t")
:help filename-modifiers
niejieqiang
帖子: 151
注册时间: 2009-05-29 22:05

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#7

帖子 niejieqiang » 2011-11-03 9:07

nmap <leader>rr :!perl %

仅引用文件名到命令行,不运行。因为有时候或许要加个参数什么的
aikilis
帖子: 12
注册时间: 2011-06-08 13:26

Re: 如何在VIM的map功能中引用正在编辑的文件名?

#8

帖子 aikilis » 2011-11-03 9:53

niejieqiang 写了:nmap <leader>rr :!perl %

仅引用文件名到命令行,不运行。因为有时候或许要加个参数什么的
这个好,只引用到命令行
回复