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中显示文件目录树。 当然也集成了文件和目录操作,需要熟悉其快捷键。

Vim 中进行文件目录操作的更多相关文章

  1. vim中的替换操作

    在vim中 :s(substitute)命令用于查找并替换字符串.使用方法如下: :s/<find-this>/<replace-with-this>/<flags> ...

  2. vim中的分屏操作

    title: vim中的分屏操作 date: 2017-11-14 21:45:11 tags: vim categories: 开发工具 在命令行中: vim -On file1 file2 # O ...

  3. Qt中与文件目录相关操作

    一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...

  4. 再谈vim中多窗口的编辑 ctrl+w+H窗口位置最大化和互换等操作

    参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好 鼠标在各个窗口间循环移动: ctrl+w+(小写的 hjkl), &qu ...

  5. Vim 中文件目录浏览插件——NERD tree

    说明 :vim的插件NERDTree用于使得vim窗口分左右窗口显示的用法说明.其中,左侧为目录的树形界面,简称为NERDTree界面,右则为vim界面. 一.配置步骤 下载地址: http://ww ...

  6. 关于VIM中展示二进制字符的操作

    在网上拷贝了一段代码放到linux下变异,发现每行的行首有一堆不可识别的字符.放到windows的notepad下发现也不是空格也不是tab,权当是某种不可识别的缩进字符把 解决方法  linux c ...

  7. VIM中简化删除,光标移动和查找操作

    # 一.命令行模式下简化删除 1. 向后删除单个字符:[x] 2. 向前删除单个字符:[X] 3. 删除从光标开始到单词结尾:[dw] 删除从光标后的2个单词:[d2w] 4. 删除整个单词:[daw ...

  8. vim 编辑器的光标操作

    vim中最简单的移动光标的方式是使用使用方向键操作,但这种方式的效率底下,更高效的方式是使用快捷键,常用的快捷键如下表所示. 快捷键                                 功 ...

  9. 第32课 Qt中的文件操作

    1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...

随机推荐

  1. 利用$a_n$与$S_n$的关系求通项$a_n$

    前言 由\(a_n\)与\(S_n\)的关系求数列\(\{a_n\}\)的通项公式,在求通项公式题型中占有比较大的份额,是一个重要的求解思路和方法.是要求重点掌握的类型. 一.方法依据 二者关系:\( ...

  2. Python 和 Flask 设计 RESTful API

    #!flask/bin/python from flask import Flask, jsonify from flask import make_response app = Flask(__na ...

  3. 分布式文件系统HDFS

    利用Shell命令与HDFS进行交互 以”./bin/dfs dfs”开头的Shell命令方式 1.目录操作 在HDFS中为hadoop用户创建一个用户目录(hadoop用户) 启动hadoop 创建 ...

  4. odoo前端必填提示

  5. Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  6. Maven 教程(18)— 利用 Profile 构建不同环境的部署包

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79776257 接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5 ...

  7. [转帖]中国 GPL 诉讼第一案:关于 GPL 问题的探讨

    中国 GPL 诉讼第一案:关于 GPL 问题的探讨 https://linux.cn/article-11683-1.html 2019 年 11 月初,数字天堂(北京)网络技术有限公司(下称:数字天 ...

  8. C 编程环境搭建 Window 篇

    前言 - 简介 我们在写代码的过程中, 不可避免的重度依赖所处的开发环境. 本文重点带大家在 Window 搭建 C 简单控制台项目. 当作存档, 用于记录项目搭建各种重复操作.  在详细过程之前, ...

  9. Npoi 的使用

    npoi这个office写入,我个人有点不方便,但是因为需要使用所以不得不去用了. 原因: 1. 没文档 2. 网上的案例版本不同 3. 对于复杂列不好做处理 跟网上其他工具的对比,好处就是不需要依赖 ...

  10. react项目添加本地音频

    <audio src="./res/audio/alarm.mp3" autoplay="autoplay" loop="loop"  ...