加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在vim的新目录中创建文件一步?

发布时间:2020-12-15 19:33:46 所属栏目:安全 来源:网络整理
导读:在vim中,我想在[工作目录] / spec / models /中创建一个名为blog_spec.rb的新文件,但目录不存在? 创建目录并开始编辑文件的最快方法是什么?任何人 尝试以下命令: function s:MKDir(...) if !a:0 || stridx('`+',a:1[0])!=-1 || a:1=~#'v@![ *?[%#]
在vim中,我想在[工作目录] / spec / models /中创建一个名为blog_spec.rb的新文件,但目录不存在?

创建目录并开始编辑文件的最快方法是什么?任何人

尝试以下命令:
function s:MKDir(...)
    if         !a:0 
           || stridx('`+',a:1[0])!=-1
           || a:1=~#'v@<![ *?[%#]'
           || isdirectory(a:1)
           || filereadable(a:1)
           || isdirectory(fnamemodify(a:1,':p:h'))
        return
    endif
    return mkdir(fnamemodify(a:1,':p:h'),'p')
endfunction
command -bang -bar -nargs=? -complete=file E :call s:MKDir(<f-args>) | e<bang> <args>

此命令旨在替代内置的:e。

mkdir未运行的条件(按顺序):

>命令运行时没有参数
>命令使用`generate filename’或`= generate_filename()`backticks文件名生成器或命令/ opt开关运行。
>命令包含多于一个参数或具有未转义的特殊字符。
参数是一个目录。
>参数是现有文件。
>参数是现有目录中的文件。

在最后三个案件中,不应该做任何事情,第二和第三个案件是不可能处理的,更复杂。

以上是准备添加cnoreabbrev:

cnoreabbrev <expr> e ((getcmdtype() is# ':' && getcmdline() is# 'e')?'E':'e')

-complete = file spoils的东西:它不仅添加了完成,还包括参数处理(因此检查’扩展和特殊字符的存在没有意义),并禁止有多个“文件名”(因此没有选择)。

-bar使您无法使用`=“String”`因为“现在开始注释。没有-bar它不是一个:e仿真,因为你不能做E文件|另一个命令。

另一个版本:

function s:MKDir(...)
    if         !a:0 
           || isdirectory(a:1)
           || filereadable(a:1)
           || isdirectory(fnamemodify(a:1,'p')
endfunction
command -bang -bar -nargs=? -complete=file E :call s:MKDir(<f-args>) | e<bang> <args>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读