"x"命令可以删除一个字符

"d"命令可以后跟任何一个位移命令,它将删除从当前光标起到位移的终点处的文本内容dw

"c",改变命令例如cw c2w  "cc"命令可以改变整行

"r"命令不是一个操作符命令。它等待你键入下一个字符用以替换当前光标下的那个字符

"."命令会执行上一次所执行的更改命令

"$"命令是移动光标到行尾

"w"看作是向右移一个word的命令

以匹配一个括号为目的的移动 %

"G"命令 2 。指定一个命令计数,这个命令就会把光标定位到由命令计数指定的行上

当你用"G"命令从一个地方跳转到另一个地方时,Vim会记得你起跳的

位置。这个位置在Vim中是一个标记。使用下面的命令可以使你跳回到你

刚才的出发点:``

自定义标记‘ma’定义了一个a标记,‘`a’跳转到a标记

:marks看关于标记的列表

' 进行此次跳转之前的起跳点

" 上次编辑该文件时光标最后停留的位置

[ 最后一次修改的起始位置

] 最后一次修改的结束位置

"H"意为Home, "M"为Middle, "L"为Last

CTRL-U、CTRL-D 向上上下滚半屏

简单搜索

/include搜索include单词   n查找下一个搜索目标N相反

你以"d"或"x"这样的命令删除文本时,被删除的内容还是被保存了起来。你还可以用p命令把它取回来

"P"命令与"p"一样取回被删除的内容,不过它把被取回的内容置于光标之前。

你可以多次取回被删除的内容。其内容取之不竭

也可以对命令"p"和"P"命令使用命令记数 3p

交换两个字符

"xp"。它的工作如下:"x"删除字符e并把它放入一个寄存器中"p"命令把被删除的e再放回

到当前光标之后

"y"是一个操作符命令复制命令可以使用命令计数器 "yy"命令复制一整行"yw"

剪切板

"*yy 复制一行到剪切板   "*p粘贴剪切板

"R"命令会让Vim进入replace模式。在此模式下,每个键入的字符都会替换掉当前光标下的字符。直到你键入<Esc>结束该模式

定制自己的vim

如果你已经有了一个vimrc文件(比如说系统管理员已经为你配好

了),可以这样来打开:$MYVIMRC

 

~/.vimrc

 

set nocompatible 关闭vi兼容

 

set backspace=indent,eol,start

这条命令告诉Vim在Insert模式下退格键何时可以删除光标之前的字符。选项中以逗号分隔的三项内容分别指定了Vim可以删除位于行首的空格,断行,以及开始进入Insert模式之前的位置。

 

if has("vms")

set nobackup

else

set backup

endif

这段脚本告诉Vim在覆盖一个文件之前备份该文件。

 

set ruler 总是在Vim窗口的右下角显示当前光标的行列信息。

 

set incsearch 在你键入要搜索的字串的同时就开始搜索当前已经键入的部分

 

filetype plugin indent on

这个命令开启了Vim的三种智能:

1. 自动识别文件类型

你开始编辑一个文件时,Vim就会自动识别它是何种类型的文

件。比如说你打开了"main.c", Vim就会根据它的".c"扩展名知

道它是一个类型为"c"的C语言源程序文件。当你编辑一个文件

其第一行是"#!/bin/sh"时,Vim又可以据此判断它是一个类型

为"sh"的shell脚本文件。

2. 用文件类型plugin脚本

不同的文件类型需要搭配适合于它的编辑选项。比如说你在编辑一

个"c"文件,那么打开'cindent'就非常有用。这些对某种文件类型

来说最常用的选项可以放在一个Vim中叫文件类型plugin的脚本里。

你还可以加上你自己写的

3. 使用缩进定义文件

编 辑 程 序 的 时 候 , 语 句 的 缩 进 可 以 让 它 自 动 完 成 。Vim为

众 多 不 同 的 文 件 类 型 提 供 了 相 应 的 缩 进 方 案

 

 

 

添加一个plugin

Vim的功能可以通过向它添加plugin得以扩展。所谓plugin不过是一个Vim会自动载入执行的脚本。把一个脚本放入你的plugin目录就可以了,非常容易。

plugin基本上分为两类:

全局的:用于所有文件

专用于某类型文件的:只用于特定类型的一类文件

下面先说全局的plugin,接下来是专用于某种文件类型的plugin

 

你启动Vim时,它会自动载入一些全局的plugin,你不必额外地

做任何事情。这些plugin 定义了使用率很高的一些功能,但它们是

以一个Vim脚本的形式而不是通过内建于Vim可执行文件内来提供。

 

得到一个全局的plugin文件

1. 有一些随Vim一起发行。位于目录$VIMRUNTIME/macros以及它的子目

  1. 从网上下载,

plugin的位置

系统 相应的plugin目录

Unix ~/.vim/plugin/

PC and OS/2   $HOME/vimfiles/plugin or $VIM/vimfiles/plugin

Mac OS X ~/.vim/plugin/

除 了 直 接 把plugins放 入plugin/目 录 之 外 , 可 能 更 好 的 选 择

是 把 它 们 分 门 别 类 归 置 到plugin/的 下 一 级 子 目 录 中 。 比 如

象" /.vim/plugin/perl/*.vim"这样来安置所有跟Perl 相关的plugins

 

Vim的发布版中已经包括了针对不同文件类型的相应plugin,你可以

使用下面命令开启对它的应用:

:filetype plugin on

编辑多个文件

目前为止我们使用Vim的方式还是为每一个要编辑的文件运行一

次Vim。这是最简单的用法。命令

:edit foo.txt

 

如果你想编辑另一个文件,但又不想保存当前文件中的改动 1 ,你可

以使它变为一个隐藏的缓冲区:

:hide edit foo.txt

查看buffer?
:ls,
以为buffer的基本单位是单个文件,所以ctrl+o/i 所看到的位置其实是在buffer中存储的
列表中%代表当前缓冲区
另外也可以使用:bn,:bp来切换下一个,上一个

 

启动VIM时编辑多个文件:

vim one.c two.c three.c

 

该命令启动Vim并告诉它你要编辑3个文件。Vim将在启动后只显示第

一个文件。完成该文件的编辑后,可以以命令:

:next

但多数情况下人们还是要保存工作成果并继续下一个文件的编辑。有

一个命令合并了这个过程:

:wnext

 

查看整个列表中就有哪些文件,使用命令:

:args

要回到前一个文件:

:previous

要移到最后一个文件::last

到第一个:first

 

:args five.c six.c seven.h  编辑另外一个文件列表

要在两个文件间快速切换,使用CTRL-^

 

:set backup 备份文件

生成的备份文件名将是原文件名后面附加一个~。如果原文件

是data.txt, 则生成的备份文件是data.txt~。

:set backupext=.bak自定义备份文件后缀

 

:set patchmode=.orig让VIM保存文件原始版本

 

 

 

 

在文件间复制粘贴

 

将光标移到某处文件并按

下"v"。该命令将开始Visual模式。现在把光标移到要复制文件的末尾按

下"y"

现在开始编辑你希望把复制的内容放入其中的文件。把光标置于你希

望复制内容的地方,用"p"把此前复制的内容粘贴到这里。

 

 

 

使用寄存器

一 个 寄 存 器 只 是Vim用 来 存 放 文 本 的 地 方 。 这 里 我 们 只 用

从a到z这26个字母作为寄存器的名字(稍后你会发现还有其它可用的寄

存器)。来把一个句子复制到名为f的寄存器中

 

把3个整行的内

容放到寄存器l中  -----"l3Y

l3p 将寄存器i的内容放在光标后,可以再任意文件标签中粘贴复制

删除了一个word并把它保存在名为w的寄存器 "wdaw

 

 

向文件中追加内容

:write >> logfile

 

 

查看文件

view file

 

 

 

 

CTRL-W w命令可以切换当前活动窗口

:only  关闭除当前窗口外的所有其它窗口

:split two.c 为另一个文件分隔出一个窗口 :vsplit

:new 打开一个新窗口 :vnew

:3split alpha.c 打开了一个高度为3行的新窗口

CTRL-W + 增加高度 4 CTRL-W +

CTRL-W - 减小高度  

CTRL-W h 到左边的窗口

CTRL-W j 到下面的窗口

CTRL-W k 到上面的窗口

CTRL-W l 到右边的窗口

CTRL-W t 到顶部窗口

CTRL-W b 到底部窗口

 

以上的hjkltb 换成大写就是移动当前窗口位置

 

:qall  针对所有窗口操作的命令 关闭所有

:wall 保存所有 wqall

vim -o one.txt two.txt three.txt 为每一个文件打开一个窗口

 

vimdiff main.c~ main.c查看两个文件不同 不是在vim中

 

:tab split打开新页签

:gt 切换页签

 

 

给文本设置对其方式

1,5center 40  1-5行居中对齐 行宽40 ,也可以用left right

 

设置缩进

1,5 4>>  1-5行 4个空格位缩进行

 

:read patch 将文件patch的内容读到当前文件

:.write >> collection 想目标文件追加

:.,$write! tempo 从当前行. 到尾行$的内容覆盖到tempo

 

:read !ls读取命令输入

 

CTRL-L重绘屏幕

 

灾难恢复

vim -r help.txt

 

如果你在编辑一个没有指定文件名的缓冲区时死机了,可以通过一个

空字符串作为要恢复的"文件名":

vim -r ""

确保你所在的目录是正确的,否则Vim会找不到正确的交换文件

 

挂起与恢复

象其它的Unix程序一样Vim也可以用CTRL-Z来挂起。该命令停止Vim的

执行使你回到启动Vim的shell中去。你可以做些别的事。完了再用"fg"命

令回到Vim.

 

'0

每次退出Vim时它都会创建一个特殊的标记。最后的一个是'0。上次

的'0现在会变成'1,原来的'1成了'2,如此类推,原来的'9就丢掉了。

 

:edit . 打开文件浏览器

在"../"上按下<Enter>则会上溯到当

前目录的父目录。"-"命令也是殊途同归

 

<Enter> 在当前窗口中打开文件

o 打开一个水平分隔的窗口显示文件

v 打开一个垂直分隔的窗口显示文件

t 在一个新标签页中打开文件

c 将当前目录切换到浏览器正打开的目录。

R 更改当前光标下的文件,Vim会提示你输入一个新的文件名

D 删除当前光标下的文件名。 Vim也会提示你进行确认

 

:Explore [目录名] 浏览指定的目录或当前目录

:Explore ftp://somehost/path/to/dir/

:e scp://somehost/path/to/dir/

 

:cd VeryLongFileName cd切换工作目录

 

lcd"命令。所有的窗口都共享同一个工作

目录。一旦在其中一个窗口中用":cd"命令改变了工作目录,其它窗口中

的工作目录也将随之改变。

对一个窗口使用":lcd"后它的工作目录会被记录下来

 

假设你想知道头文件"inits.h"中的内容。只需将光标置于该文件上

然后键入:gf

Vim就会找到并编辑该文件。

如果这个文件并不在工作目录下呢?此时Vim会使用在'path'选项中

定义的目录去查找它。该选项的内容是一个以逗号分隔的目录名列表。

:find inits.h  查找文件

 

 

:hide edit two.txt 隐藏当前缓冲区打开新文件

:ls  列出所有缓冲区

:buffer 2 编辑缓冲区2

自定义文件类型

创建你自己的运行时目录。在Unix系统上通常是"~/.vim"。在该

目录下创建名为"ftplugin" 1 的目录:

mkdir ~/.vim

mkdir ~/.vim/ftplugin

如果你不用Unix,看一看'runtimepath'选项的设置,找出Vim会在哪

里寻找"ftplugin"目录

 

2。创建文件"~/.vim/ftplugin/c.vim"

如果这个目录下已经有了一个同名文件。你就要停下来仔细检查一下

两个文件是否会引起冲突,如果没问题,你可以把要加入的新文件更名一

下:

mv thefile ~/.vim/ftplugin/stuff_too.vim

划线用于分隔用于标识文件类型的部分和其它部分,下划线其后的

部分可以自由命名。如果你用"otherstuff.vim"这样的名字,Vim可不能

识别它,它只会在文件类型是"otherstuff"时被载入。

 

文件类型plugin的文件名一般形式是:

List

ftplugin/<filetype>.vim

ftplugin/<filetype>_<name>.vim

ftplugin/<filetype>/<name>.vim

vim用户手册笔记常用操作整理的更多相关文章

  1. vim程序编辑器---常用操作整理

    vim程序编辑器---常用操作整理 移动光标方法 o 在光标行的下一行,进入编辑模式 $ 移动到光标这行,最末尾的地方 G(大写) 移动到文件最末行 :set  nu 文件显示行数 :set  non ...

  2. javascript中字符串常用操作整理

    javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...

  3. vim编辑器——常用操作整理

    注意:以下的操作都是在命令状态下进行的,不要进入插入状态了.参考这里 1.删除 dd       删除一行 ndd    删除以当前行开始的n行dw    删除以当前字符开始的一个字符ndw   删除 ...

  4. vim常用操作整理

    一.删除操作 :%s/r//g 删除DOS方式的回车^M :%s= *$== 删除行尾空白 :%s/^(.*)n1/1$/ 删除重复行 :%s/^.pdf/new.pdf/ 只是删除第一个pdf :% ...

  5. Vim 模式及常用命令整理

    VIM 命令     以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令.   vim的模式 基本上可以分为3种模式,分别是命令模式(command mode).插入模 ...

  6. vim技巧5 常用操作

    vim:set number:set nonumbern 移动命令键8l 向右移动八个字符3j 向下移动三行3G:移动到第三行行首10$:下移到10行,并定位到行尾:n1,n2s/word1/word ...

  7. .Net Standard HttpClient封装Htt请求常用操作整理

    一.常用Http操作 1.Get请求,有参数,无参数 2.Post 请求,有参数,无参数 3.文件简单下载 修改NetHelper中Post请求方法Bug:请求编码默认UTF8,字符串内存流读取后这是 ...

  8. Mysql数据库常用操作整理

    0.说明 MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便.灵活.开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用.从 ...

  9. Javascript 字符串(二)常用操作整理

    一.js获取字符串的字节数 这个好使--- function getBytesLength(str) { // 在GBK编码里,除了ASCII字符,其它都占两个字符宽 return str.repla ...

随机推荐

  1. spark上 spark-shell和java -jar访问hdfs路径问题

    部署spark集群 使用spark包 spark-1.0.2-bin-hadoop2.tgz 在spark-shell和java -jar访问hadoop hdfs上的文件写法是有区别的 在spark ...

  2. 子字符串查找之————关于KMP算法你不知道的事

    写在前面: (阅读本文前需要了解KMP算法的基本思路.另外,本着大道至简的思想,本文的所有例子都会做从头到尾的讲解) 作者翻阅了大量网上现有的KMP算法博客,发现广为流传的竟然是一种不完整的KMP算法 ...

  3. 设计模式(十九)State模式

    在面向对象编程中,是用类表示对象的.也就是说,程序的设计者需要考虑用类来表示什么东西.类对应的东西可能存在于真实世界中,也可能不存在于真实世界中.对于后者,可能有人看到代码后会感到吃惊:这些东西居然也 ...

  4. Mysql数据库(七)触发器

    一.MySQL触发器 触发器是由MySQL的基本命令事件来触发某种特定操作,这些基本的命令由INSERT.UPDATE.DELETE等事件来触发某些特定操作.满足触发器的触发条件时,数据库系统就会自动 ...

  5. Spring(一)Spring基础知识

    创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB(Enterprise JavaBean 企业级JavaBean).相对于EJB来说,Spring提供了更加轻量级和简单 ...

  6. 数据库(一)--通过django创建数据库表并填充数据

    django是不能创建数据库的,只能够创建数据库表,因此,我们在连接数据库的时候要先建立一个数据库. 在models.py中 from django.db import models class Pu ...

  7. python之ORM(对象关系映射)

    实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要更改代码.orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句.所有使用Django开发的项目无需关心程序底层使用的 ...

  8. 详细讲解IPython

    ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数.学习ipython ...

  9. 完美解决Python与anaconda之间的冲突问题

    anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.因为包含了大量的科学包,Anaconda 的下载文件比较大(约 515 MB),如果 ...

  10. Centos 7修改hostname浅析

    之前写过一篇博客"深入理解Linux修改hostname",里面总结了RHEL 5.7下面如何修改hostname,当然这篇博客的内容其实也适用于CentOS 6,但是自CentO ...