ITPub博客

首页 > > > Vim实践与学习-03文件

Vim实践与学习-03文件

作者:vaqeteart 时间:2020-03-24 13:54:37 0 删除 编辑


这里包含在 `shell` 下执行 `vim`,以及 `vim` 中关于文件操作的内容。

# 打开一个文件 `file` 进行编辑等操作

$vi file

# 打开文件,并将光标置于第 `n` 行首

$vi +n filename

这里输入得都是 `shell` 下进行得,是 `shell` 命令,打开之后光标在屏幕中间,而屏幕中间的行就是第 `n` 行。

# 打开文件,并将光标置于第一个与 `pattern` 匹配的串处

$vi +/pattern filename

这里输入得都是 `shell` 下进行得,是 `shell` 命令。

# 在上次正用 `vi` 编辑时发生系统崩溃,恢复 `filename`

$vi -r filename

# 以只读方式打开文件

$vi -R file

或

$view file

这里输入得都是 `shell` 下进行得,是 `shell` 命令。其中 `view` 是 `unix` 得命令,有的 `linux` 有。

# `vi` 下临时切换到 `shell` 执行 `shell` 命令

输入: `!command` 。

注意:这里 `command` 是命令名字(例如 `ls` ).

# 查看当前编辑的文件和行号

输入 `<C-g>` 。

或输入 `:args` ,查看当前编辑缓冲文件状态(文件名).

# 显示当前光标所在行的行号

输入 `:nu` .

这里只是在底部“状态栏”的位置显示一下当前光标所在的行号以及行。

# 保存

输入 `:w` 。

若输入 `:w file` (效果和另存为文件 `file` 一样).

# 载入(创建)一个新文件( `file` )

输入 `:e file` 。

或输入 `:n file` 。

或输入 `:hide e filename` 。

这里,类似于新建文件或者新打开一个文件,当前文件的窗口将会被待编辑的文件所占用,如果当前文件没有保存会提示的。实质上是隐藏当前文件到 `buffer` 缓存,打开另一个文件进行编辑,具体见缓存部分。

# 在新窗口载入(创建)一个文件( `file` )

输入 `:vnew file` 。

或输入 `:vsplit file`

或输入 `:split file`

这将新开一个垂直的分割窗口,并在新开的窗口中载入相应的文件( `:split file` 是水平窗口)。

# 将当前文件以及改动保存到另外文件中

输入 `:w FILENAME` .

这里, `FILENAME` 是另外的文件名,执行之后仍然停留在当前文件中,只是目录中多了一个 `FILENAME` 文件(即另存为).

# 只保存文章的某个部分到另外文件

输入: `#,# w TEST` 。

这里的 `#,#` 就是要求您记住的行号范围(最小行号,最大行号),而 `TEST` 就是选定的文件名。

# 向当前光标中插入另外的文件的内容

输入: `r FILENAME` .

这里, `FILENAME` 是要插入的文件名, `r` 前面可以指定一个行号,表示把内容插在这个行号后面。

# 在 `buffer` 缓冲内操作文件相关

## 列出当前打开的文件,以及编号

输入 =:buffers = .

或输入 `:ls` .

假设我们打开一个文件,之后用 `n` 来切换到另外一个文件中,或者用 `tabnew` 打开新文件,那么原来的文件以及现在的文件都会在 `buffers` 中,并且 `yy` 等命令复制的原来的文件的内容还能用。列表前面的前缀 `%` 表示当前文件, `#` 表示可以用 `[Ctrl]^` 等切换的可用 `buffer` ,其他的可以查看 `:help ls` 或者 `:help buffers` .

## 切换成第 `N` 个缓冲

输入 `N ctrl^` .

或输入 `:buffer N` .

这里,注意第一种方法不用输入 `:` ,两个 `buffer` 文件之间也可用 `yy` , `pp` .

## 新开一个窗口,载入第 `N` 个缓冲区的文件

输入 `:sbuffer N` .

窗口默认是水平的。

## 切换到下一个文件

输入 `:bn` .

## 切换到上一个文件

输入 `:bp` .

## 关闭当前文件

输入 `:bw` .

这样会关闭当前文件进入下一个 `buffer` 的文件,并且当前文件也会从 `buffer` 列表中删除。

## 跳至下一个文件

输入 `:n` .

当然这里打开文件的方法应该是 `$vi file1 file2 file3` 才行。如果用 `vi file1` 之后用 `:n file2` 这样不行。

## 回到刚才编辑的文件

输入 `:e#` .

或输入 `[Ctrl]^`

例如运行了 `vi a b c` ,当前编辑文件为 `a` , `:n` 跳至 `b` ,再 `:n` 跳至 `c` , `:e#` 回到 `b` ,想回到 `a` 的话用 `:ea` 。

# 退出

输入 `:q` 。

# 保存退出

输入 `:wq` .

或者输入 `:x` .

或输入 `ZZ` .

# 强制退出

输入 `:q!` (可能未保存)。

# 退出所有

输入 `:qa` .

这里如果打开多个窗口或者文件的时候,使用这个命令可以实现一次性退出。

# 查看当前编辑缓冲文件状态(文件名)

输入 `:args` 。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9525959/viewspace-3170054/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
软件开发者,擅长嵌入式Linux软件开发、Linux系统操作、时间管理、其它。

注册时间:2009-03-17

  • 博文量
    60
  • 访问量
    12562