分页: 1 / 1

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

发表于 : 2011-10-21 17:17
aikilis
RT,我想实现一键编译并执行

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

就是这个filename該怎么做?

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

非常感谢!

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

发表于 : 2011-10-21 19:17
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>

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

发表于 : 2011-10-21 23:35
Fermat618
编译不成功怎么办?

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

发表于 : 2011-10-21 23:40
aikilis
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>
成功了!!非常感谢!

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

发表于 : 2011-10-21 23:50
lilydjwg
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

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

发表于 : 2011-11-02 21:37
lymslive
expand("%:p:t")
:help filename-modifiers

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

发表于 : 2011-11-03 9:07
niejieqiang
nmap <leader>rr :!perl %

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

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

发表于 : 2011-11-03 9:53
aikilis
niejieqiang 写了:nmap <leader>rr :!perl %

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