Vim进行文件目录操作小结

 更新时间:2016年11月20日 16:42:20   投稿:daisy  
在工作的很多时候我们希望在Vim中可以操作文件和目录,例如备份当前文件、 重命名当前文件、创建和删除旧文件、创建和删除目录等。 这些操作在Bash中当然可以很好地完成,但退出Vim会丢失光标位置、Buffer等信息,我们当然希望在Vim中完成这些操作。下面来一起看看吧。

一、当前文件名

我们知道Vim有48个寄存器,其中%只读寄存器中保存着当前文件路径。 例如在/home/harttle/下打开src/main.cpp,我们打印%的值:

:echo @%    " 文件路径 src/main.cpp

通过关键字展开可得到绝对路径、所在目录等信息:

:echo expand('%:t')  " 文件名  main.cpp
:echo expand('%:p')  " 绝对路径 /home/harttle/src/main.cpp
:echo expand('%:p:h') " 所在目录 /home/harttle/src
:echo expand('%:p:h:t') " 所在目录名 src

:p理解为path, :h理解为head, :t理解为tail。可参考:help expand。

二、利用 % 进行文件操作

备份当前文件main.cppmain.cpp.bak:

:w % %.bak

打开在同目录下的main.h

:e %:p:h/main.h

插入当前文件名:

"%p

拷贝当前文件名到剪切板,当然你可以把它做成快捷键:

:let @*=expand("%:t")

三、直接打开目录

Harttle发现Vim不仅可以打开文件,而且可以打开目录。 直接vim /home/harttle即可打开,也可以在vim打开目录:

:e ./harttle " 编辑该目录
:Explore .  " 浏览该目录
:Sexplore .  " 在水平分割窗口中浏览该目录
:Vexplore .  " 在垂直分割窗口中浏览该目录

打开目录后Enter进入下一层,-返回上一层,R重命名,D删除。

这里的水平分割是指上下两个窗口,垂直分割为左右两个窗口。 貌似TMUX和VIM对水平和垂直的定义恰恰相反,Harttle也是醉了。

四、万能方法

如果你找不到合适的Vim命令,随时都可以在Vim中直接执行Bash命令。 只需要在Ex模式中添加前导的!字符,例如:

# 列出文件
:!ls
# 删除文件
:!rm foo.txt

此外,NERDTree插件可以在Vim中显示文件目录树。 当然也集成了文件和目录操作,需要熟悉其快捷键。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。

相关文章

  • Linux下gdb调试打印进程内存信息方式

    Linux下gdb调试打印进程内存信息方式

    这篇文章主要介绍了Linux下gdb调试打印进程内存信息方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 详解CentOS7.0安装与配置Tomcat-7

    详解CentOS7.0安装与配置Tomcat-7

    本篇文章主要介绍了CentOS7.0安装与配置Tomcat-7,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • linux修改root密码和linux忘记root密码后找回密码的方法

    linux修改root密码和linux忘记root密码后找回密码的方法

    这篇文章主要介绍了linux修改root密码和linux忘记root密码后找回密码的方法,需要的朋友可以参考下
    2014-01-01
  • Apache Prefork、Worker和Event三种MPM详解

    Apache Prefork、Worker和Event三种MPM详解

    这篇文章主要介绍了Apache Prefork、Worker和Event三种MPM详解,着重介绍了配置参数部分,需要的朋友可以参考下
    2014-06-06
  • ubuntu中修改grub的启动时间生成

    ubuntu中修改grub的启动时间生成

    这篇文章主要介绍了ubuntu中修改grub的启动时间生成,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • linux下如何切割大文件

    linux下如何切割大文件

    这篇文章主要介绍了linux下如何切割大文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Linux下新增用户、指定用户组、家目录、获取sudo权限方式

    Linux下新增用户、指定用户组、家目录、获取sudo权限方式

    这篇文章主要介绍了Linux下新增用户、指定用户组、家目录、获取sudo权限方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 如何重置 RHEL7/CentOS7 系统的root密码

    如何重置 RHEL7/CentOS7 系统的root密码

    这篇文章主要介绍了如何重置 RHEL7/CentOS7 系统的root密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Linux解决Unknown filesystem问题

    Linux解决Unknown filesystem问题

    当Linux系统出现「Unknown filesystem」错误,通常是GRUB引导问题,首先在GRUB命令行输入ls查看信息,记录返回的分区信息,使用PE系统,如「微PE」,并利用「显示隐藏分区」工具查看所有分区,在文件资源管理器中找到「boot」文件夹所在的分区
    2024-10-10
  • linux下RPM包安装基于xinetd的服务的管理

    linux下RPM包安装基于xinetd的服务的管理

    大家好,本篇文章主要讲的是linux下RPM包安装基于xinetd的服务的管理,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论