最近工作中需要到linux服务器上更改文件,苦于对vim的各种命令不熟悉,今天特此总结并熟悉一下各种vim命令,好提高工作效率。后期持续更新

vim编辑器个人设置

  1. 先复制一份vim配置模板到个人目录下,如果/usr/share/vim/vimrc文件不存在则直接跳到第二步

    cp /usr/share/vim/vimrc ~/.vimrc
  2. 编辑个人目录下的.vimrc

    vi ~/.vimrc
  3. 进入vim编辑模式编写以下配置信息
syntax on           '开启语法高亮'
set nu! '设置行号'
set autoindent '自动缩进'
set tabstop=4 '设置tab键为4个空格'
set showmatch '设置匹配模式,类似当输入一个左括号时会匹配相应的右括号'

命令模式(command mode)—执行命令

  在该模式中,可以输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

输入模式(Insert mode)—输入文本

  vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)。

末行模式(last line mode)—执行待定命令

  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将末行模式(last line mode)也算入命令行模式command mode)。

命令模式下常用命令

移动命令

^ 移动到当前行的开头处

$ 移动到当前行的结尾处

w 移动到下一个单词的开始位置

gg 移动到文件头

shift+g 移动到文件尾

h 光标左移

j 光标下移

k 光标上移

l 光标右移

Ctrl+b(back) 屏幕往后移动一页

Ctrl+f(forward) 屏幕往前移动一页

Ctrl+u(up) 屏幕往上移动半页

Ctrl+d(down) 屏幕往下移动半页

撤销命令

u 倒退一步

Ctrl+r 重做

删除命令

x 删除当前字符

dd 删除光标所在行

dgg 删除光标所在行到文件头的所有字符

dG 删除光标所在行到文件尾的所有字符

拷贝剪切和粘贴

yy 复制光标所在行

p 将已复制的数据在光标下一行粘贴

P 将已复制的数据在光标上一行粘贴

. 重复前一个动作

退出命令

:w filename(存入指定文件) 另存为

:q 退出

:q! 强行退出vi,使被更新的内容不写回文件中。

:wq 保存并退出,即将上面的两步操作可以合成一步来完成。

:x 保存并退出

搜索命令

/text  从光标开始向后查找text,按n查找下一个,按N查找前一个。

?text 从光标开始向前查找text,按n查找前一个,按N查找下一个。

搜索特殊符号.*[]^%/?~$需要转义

:n 将光标快速定位到n行

vim +/text a.php 打开a.php并将光标定位到第一个text

% 快速定位到另一半符号{}[]()

替换命令

r 替换光标所在字符(按下r后输入新字符)

%s/t/o/g 将所有的t替换为o

修改命令 c [数字] motion

c^ 删除光标从当前位置到当前行的开头处所有字符,并进入插入模式

c$ 删除光标从当前位置到当前行的结尾处所有字符,并进入插入模式

插入命令

i 在当前位置前插入并切换到输入模式

a 在当前位置后插入并切换到输入模式

o 在当前行下方插入一行并切换到输入模式

按下插入命令可进入文本输入模式

:!可以执行其他shell命令

工作中常用到的Vim命令的更多相关文章

  1. 工作中常用到的sql命令!!!

    一.mysql数据库日常操作.     1.启动mysql:/etc/init.d/mysql start (前面为mysql的安装路径)     2.重启mysql:  /etc/init.d/my ...

  2. 总结工作中常用到的linux命令大全_经典

    常用解压命令 tar.bz2 命令: tar -jxvf  *.tar.bz2 tar.z   命令: tar -zxvf  *.tar.z tar.gz   命令: tar -Zxvf  *.tar ...

  3. 二零一七年工作中常用的基本Linux命令记录(Ubuntu)

    Linux命令如下(Ubuntu): 1. apt-get install openssh-server 下载远程工具 2. apt-get install lrzsz 上传下载工具 3. apt-g ...

  4. 工作中常用到的Linux命令

    ps: (ps的参数分成basic, list, output, thread, miscellaneous) (basic) -e / -A 显示所有进程 (output) -o 输出指定字段 ls ...

  5. php工作中常用到的linux命令

    压缩并指定目录举例:zip -r /home/kms/kms.zip /home/kms/server/kms 解压并指定目录举例:unzip /home/kms/kms.zip -d /home/k ...

  6. 工作中常用到的linux命令总结

    linux系统ubantu debian系统下载文件:wget https://github.com/buger/goreplay/releases/download/v1.0.0/gor_1.0.0 ...

  7. 工作中常用Lixu命令学习笔记

    对于Linux,我是菜鸟,也是在工作中了才开始慢慢接触,用Linux的人都我都会觉得屌屌的,现在把工作中常用的一些Linux命令记录一下,供以后学习和参考. cd 这可能是我觉得Linux最简单的一个 ...

  8. 转摘Linux命令工作中常用总结

    Linux命令工作中常用总结   1. 搜索 在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位: 在vi和vim界面中输入:"/" ...

  9. 【基础】工作中常用的linux命令,经常会被面试官问到

    前言 面试经常会问到一些Linux操作命令,下面就工作中常用的和面试问的频率较高的命令做详细描述. 常用命令 修改密码:passwd 用户名 切换用户名:su 用户名 查看当前路径:pwd 调整路径: ...

随机推荐

  1. Windows系统CMD常用命令大全

    命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...

  2. 使用Ansible实现数据中心自动化运维管理

    长久以来,IT 运维在企业内部一直是个耗人耗力的事情.随着虚拟化的大量应用.私有云.容器的不断普及,数据中心内部的压力愈发增加.传统的自动化工具,往往是面向于数据中心特定的一类对象,例如操作系统.虚拟 ...

  3. postgresql-分页重复数据探索

    # postgresql-分页重复数据探索 ## 问题背景 许多开发和测试人员都可能遇到过列表的数据翻下一页的时候显示了上一页的数据,也就是翻页会有重复的数据. ### 如何处理? 这个问题出现的原因 ...

  4. python(leetcode)-136只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...

  5. MapReduce对交易日志进行排序的Demo(MR的二次排序)

    1.日志源文件 (各个列分别是: 账户,营业额,花费,日期) zhangsan@163.com 6000 0 2014-02-20 lisi@163.com 2000 0 2014-02-20 lis ...

  6. Java的语法糖

    1.前言 本文记录内容来自<深入理解Java虚拟机>的第十章早期(编译期)优化其中一节内容,其他的内容个人觉得暂时不需要过多关注,比如语法.词法分析,语义分析和字节码生成的过程等.主要关注 ...

  7. Android中不能在子线程中更新View视图的原因

    这是一条规律,很多coder知道,但原因是什么呢? 如下: When a process is created for your application, its main thread is ded ...

  8. process_begin: CreateProcess(NULL,......) make (e=87): 参数错误。

    在编译 trinity-android 的过程中,总是报 process_begin: CreateProcess(NULL,......) make (e=87): 参数错误 原因是.MK文件中包含 ...

  9. Jmeter获取接口返回数组的长度

    添加BeanShell PostProcessor来获取,具体代码如下: import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath ...

  10. Spark SQL结构化数据处理

    Spark SQL是Spark框架的重要组成部分, 主要用于结构化数据处理和对Spark数据执行类SQL的查询. DataFrame是一个分布式的,按照命名列的形式组织的数据集合. 一张SQL数据表可 ...