1 简介

vim是文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。下面讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。

vim自带基础教程:在任意一台装有vim的机器上,命令行中输入vimtutor  然后就可以看到文档了。另外网上也有很多例子如:http://blog.csdn.net/niushuai666/article/details/7275406

2 基本命令

包含vim的基本介绍、使用模式、文件的打开关闭保存、插入文本或新建行、移动光标、删除、恢复字符或行、搜索等等。

vim有3个模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。

命令模式:可以移动光标、删除字符等。

低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

2.1 打开文件、保存、关闭文件(vim命令模式下使用), // 是注释的意思

vi filename     //打开filename文件

:w           //保存文件

:w cszhi.com    //保存至cszhi.com文件

:q           //退出编辑器,如果文件已修改请使用下面的命令

:q!//退出编辑器,且不保存

:wq          //退出编辑器,且保存文件

:w !sudo tee %  //保存对只读文件的修改,需要管理员密码

2.2 插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

a       //在当前光标位置的右边添加文本

i       //在当前光标位置的左边添加文本

A       //在当前行的末尾位置添加文本

I       //在当前行的开始处添加文本(非空字符的行首)

O       //在当前行的上面新建一行

o       //在当前行的下面新建一行

R       //替换(覆盖)当前光标位置及后面的若干文本

J       //合并光标所在行及下一行为一行(依然在命令模式)

2.3 移动光标(vim命令模式下使用)

①使用上下左右方向键

②命令模式下:

h   向左、j   向下、k   向上、l  向右。

空格键向右、Backspace向左、Enter移动到下一行首、-移动到上一行首。

2.3 删除、恢复字符或行(vim命令模式下使用)

x         //删除当前字符

nx        //删除从光标开始的n个字符

dd        //删除当前行

ndd        //向下删除当前行在内的n行

u         //撤销上一步操作

U         //撤销对当前行的所有操作

2.4 搜索(vim命令模式下使用)

/cszhi    //向光标下搜索cszhi字符串

?cszhi    //向光标上搜索cszhi字符串

n         //向下搜索前一个搜素动作

N         //向上搜索前一个搜索动作

2.5 跳至指定行(vim命令模式下使用)

n+//向下跳n行

n-//向上跳n行

nG        //跳到行号为n的行

G         //跳至文件的底部

2.6 设置行号(vim命令模式下使用)

:set  nu     //显示行号

:set nonu    //取消显示行号

2.7 复制、粘贴(vim命令模式下使用)

yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务

nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务

yw    //复制从光标开始到词尾的字符

nyw   //复制从光标开始的n个单词

y^    //复制从光标到行首的内容

y$    //复制从光标到行尾的内容

p     //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴

P     //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴

2.8 替换(vim命令模式下使用)

:s/old/new//用new替换行中首次出现的old

:s/old/new/g        //用new替换行中所有的old

:n,m s/old/new/g    //用new替换从n到m行里所有的old

:%s/old/new/g       //用new替换当前文件里所有的old

2.9 编辑其他文件

:e otherfilename    //编辑文件名为otherfilename的文件

2.10 修改文件格式

:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M

2.11 查看当前行信息(vim命令模式下使用)

ctrl+g

2.10 跳转到制定行(vim命令模式下使用)

number + shift  + g

如果没有输入number则跳转到末尾。1+shit+g行首。

2.11 vim 取消 查找 高亮

:set hlsearch "打开高亮搜索

:set nohlsearch "关闭高亮搜索

:nohl "只取消掉当前的搜索高亮

2.12 滚屏

ctrl+u\d  向上\下滚动半屏

ctrl+e\y  向上\下滚动一行

ctrl+b\f  向上\下滚动一屏

2.13 移动

b、3b、w、3w:向前\后移动几个单词,标点也算一个单词。相应的大写状态为不含标点,即只把空格和换行符作为单词间隔符。

$(shift+4):移动到行尾  3$:移动到3行后的行尾

0 行首有空格

^(shift+6):移动到行首,

+:移到下一行的行首

-: 移到上一行的行首

2.14 折叠

命令小结
zc 关闭当前打开的折叠
zo 打开当前的折叠
zm 关闭所有折叠
zM 关闭所有折叠及其嵌套的折叠
zr 打开所有折叠
zR 打开所有折叠及其嵌套的折叠
zd 删除当前折叠
zE 删除所有折叠
zj 移动至下一个折叠
zk 移动至上一个折叠
zn 禁用折叠
zN 启用折叠

2.15
函数折叠(命令模式)

zf

shift+%

2.16 代码格式化

#格式化全文

gg=G

 

#自动缩进当前行

==

 

#格式化当前光标接下来的10行

10=j 



#格式化当前光标向上的10行

10=k 

 

#格式化选定的行

v(向上下选择)

=

#命令解释

gg    #跳转到文件首行

=     #应用缩进格式

G     #直到文件结束

2.17 在函数中移动光标(命令模式)

[{ 转到上一个位于第一列的"{"

}] 转到下一个位于第一列的"{"

{    转到上一个空行

}    转到下一个空行

gd 转到当前光标所指的局部变量的定义

*    转到当前光标所指的单词下一次出现的地方

#    转到当前光标所指的单词上一次出现的地方

vim 命令全的更多相关文章

  1. Linux之vi/vim命令

    vi命令是linux中必不可少的一个编辑器工具.那么vi与vim又有什么区别呢,可以简单理解为vim是vi的升级版.在编辑一个文本时,vi不会显示颜色,而vim会显示颜色.显示颜色更易于用户进行编辑, ...

  2. 15个不起眼但非常强大的 Vim 命令

    如果我的关于这个话题的最新帖子没有提醒到你的话,那我明确地说,我是一个 vim 的粉丝.所以在你们中的某些人向我扔石头之前,我先向你们展示一系列“鲜为人知的 Vim 命令”.我的意思是,一些你可能以前 ...

  3. Vim 命令图解-Gvim使用笔记-2017-5-9

    Vim 命令图解-Gvim使用笔记... 图片要是看的不太清楚推荐使用:鼠标右键在新标签中打开或是全屏看图 Vim中常用的一些速查命令: Vim发展历史:1976年Bill Joy开发了vi1988 ...

  4. VIM学习一: VIM命令学习及插件介绍

    一.光标移动及编辑命令(含查找替换) [打开关闭窗口] :e file或:open file       打开新文档 :q或者ctrl+w+q         关闭当前视图的窗口 :tab split ...

  5. vim 命令图解

    vim 命令,vim是一个很好的编辑工具,下面为大家介绍一下vim入门基本命令. 方法/步骤   1 [vim 命令-启动vimtutor]:执行命令:vimtutor.vimtutor是vim使用入 ...

  6. Linux下使用vim命令编辑与修改文本内容

    输入 vim --help VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jul 26 2017 20:13:43) 用法: vim [参数] [文件 .. ...

  7. Vim命令使用

    终端输入vim命令(不区分大小写)进入Vim,起始默认进去是normal模式(即普通模式),使用:q可以退出Vim,使用i(insert)进入编辑模式,开始输入文字,使用Esc键又可以回到normal ...

  8. 【转】一个 Vim 重度用户总结的 vim 超全指南

    [转]一个 Vim 重度用户总结的 vim 超全指南 我本人是 Vim 的重度使用者,就因为喜欢上这种双手不离键盘就可以操控一切的feel,Vim 可以让我对文本的操作更加精准.高效. 对于未使用过 ...

  9. 学习 Vim 命令总结

    学习 Vim 命令总结 可以使用 vscode-vim 扩展,但是要注意一些ctrl+字母的快捷键会无效,必须去掉冲突的快捷键 esc 回到普通模式 i 普通模式进入插入模式 : 进入命令模式 :wa ...

随机推荐

  1. JSP自定义业务标签

    自定义标签: package cn.hv.tag; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; ...

  2. 好记性不如烂笔头-linux学习笔记4apache相关知识

    apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 比较好,效率高,但是吃的内存比较大. 2 如果是高负载高并发 ...

  3. 关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用

    之前一直都是使用hibernate4.2.21的我,有一天突然没有使用本地的jar包而是让IDEA自动下载最新版本的hibernate5.2.2之后,发现有几个经常使用的方法报错了. -这真是让我惊了 ...

  4. auto_ptr 浅析(转)

    auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是RAII,在构造的 ...

  5. Xpath解析xml

    Xpath解析xml其实最主要的是查找xml文档中信息,而且不需要了解xml文档结构 package com.huawei.xml; import java.io.InputStream;import ...

  6. Work-Stealing in .NET 4.0

    [Work-Stealing in .NET 4.0] 1.线程按LIFO取Task,因为最后一个Task很可能还在Cache中,提高命中率. 2.Stealer从FIFO取Task,最先加入的Tas ...

  7. 搭建https+nginx服务器

    搭建https+nginx的服务器,主要是安装ngnix和使用openssl生成自签证书,并在nginx中配置的过程   一.安装环境 1.安装opnssl(ssl支持) https://www.op ...

  8. Android APK反编译详解(转)

    转自:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代 ...

  9. C语言文件实现学生成绩管理

    C语言实现学生成绩管理 项目简介 用C语言的链表及文件操作实现学生成绩的管理,实现主要的添加.修改.删除.查询的主要功能,并在程序关闭时将数据存储在二进制的文件中并加密.下一次打开程序,先解密二进制文 ...

  10. go_结构体和方法

    面向对象:go语言仅支持封装不支持继承和多态 所以go语言没有class,只有struct(结构体) 无论地址还是结构本身,一律用 . 来访问成员 go语言编译器可以自动区分是值传递还是指针传递,值传 ...