普通模式:
 
 
 
 
 
 
 

一、一般模式常用操作

 

1.1移动光标

  【h(或向左方向键)】 光标左移一个字符
  【j(或向下方向键)】 光标下移一个字符
  【k(或向上方向键)】 光标上移一个字符
  【l(或向右方向键)】 光标右移一个字符
 

1.2翻页

  【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
  【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)
 
 
  【[0]或[Home]】 光标移动到当前行的最前面
  【[$]或[End]】 光标移动到当前行的末尾
 
  【G】 光标移动到文件的最后一行(第一个字符处)
  【nG】 n为数字(下同),移动到当前文件中第n行
  【gg】 移动到文件的第一行,相当于"1G"
  【n[Enter]】 光标向下移动n行
 

1.3查找

  【/word】 在文件中查找内容为word的字符串(向下查找)
  【?word】 在文件中查找内容为word的字符串(向上查找)
  【[n]】 表示重复查找动作,即查找下一个
  【[N]】 反向查找下一个
  【:n1,n2s/word1/word2/g】 n1、n2为数字,在第n1行到第n2行之间查找word1字符串,并将其替换成word2
  【:1,s/word1/word2/g】从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2【:1,s/word1/word2/gc】 功能同上,只不过每次替换时都会让用户确认
 

1.4删除

  【x,X】 x为向后删除一个字符,相当于[Delete],X为向前删除一个字符,相当于[Backspace]
  【dd】 删除光标所在的一整行
  【ndd】 删除光标所在的向下n行
 

1.5复制

  【yy】 复制光标所在的那一行
  【nyy】 复制光标所在的向下n行
  【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴

1.6撤销

  【u】 撤消上一个操作
  【[Ctrl] + r】 多次撤消
  【.】 这是小数点键,重复上一个操作
 

二、 一般模式切换到编辑模式的操作

2.1、进入插入模式(6个命令)

  【i】 从目前光标所在处插入
  【I】 从目前光标
  【a】 从当前光标所在的下一个字符处开始插入
  【A】 从光标所在行的最后一个字符处开始插入
  【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
  【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入
 

2.2、进入替换模式(2个命令)

  【r】 只会替换光标所在的那一个字符一次
  【R】 会一直替换光标所在字符,直到按下[ESC]键为止
  【[ESC]】 退出编辑模式回到一般模式

三、一般模式切换到命令行模式

  【:w】 保存文件
  【:w!】 若文件为只读,强制保存文件
  【:q】 离开vi
  【:q!】 不保存强制离开vi
  【:wq】 保存后离开
  【:wq!】 强制保存后离开
 
  【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
 
  【:set nu】 显示行号
  【:set nonu】 取消显示行号
 
  【:w newfile】 另存为
  【:set fileencoding】 查看当前文件编码格式
  【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
  【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
  【:set fileformat=unix】 将当前文件的断行格式设置为unix格式
 

四、文件恢复模式

  【[O]pen Read-Only】 以只读方式打开文件
  【[E]dit anyway】 用正常方式打开文件,不会载入暂存文件内容
  【[R]ecover】 加载暂存文件内容
  【[D]elete it】 用正常方式打开文件并删除暂存文件
  【[Q]uit】 按下q就离开vi,不进行其他操作
  【[A]bort】 与quit功能类似
 

五、块选择(一般模式下用)

  【v,V】 v:将光标经过的地方反白选择;V:将光标经过的行反白选择
  【[Ctrl] + v】 块选择,可用长方形的方式选择文本
  【y】 将反白的地方复制到剪贴板
  【d】 将反白的内容删除
 

六、多文件编辑

  【vim file1 file2】 同时打开两个文件
  【:n】 编辑下一个文件
  【:N】 编辑上一个文件
  【:files】 列出当前用vim打开的所有文件
 

七、多窗口功能

  【:sp [filename]】 打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
  【[Ctrl] + w + j】 光标移动到下方窗口
  【[Ctrl] + w + k】 光标移动到上方窗口
  【[Ctrl] + w + q】 离开当前窗口
 

八、vim配置文件

vim的配置文件为/etc/vimrc,但一般不建议直接修改这个文件,而是在用户根目录下创建一个新的隐藏文件:
vim ~/.vimrc
然后编辑这个文件,常用的配置如下:
bash
  "双引号后面的内容为注释
  set nu "显示行号
  set hlsearch "查找的字符串反白显示
  set backspace=2 "可随时用退格键进行删除
  set autoindent "自动缩排
  set ruler "在最下方一行显示状态
  set showmode "在左下角显示模式
  set bg=dark "显示不同的底色,还可以为light
  syntax on "语法检验,颜色显示
 

九、Dos与Linux的断行字符(文件转化)

  dos2unix [-kn] file [newfile]
  unix2dos [-kn] file [newfile]
  -k:保留该文件原本的mtime时间格式
  -n:保留原本旧文件,将转换后的内容输出到新文件
 

十、语系编码转化

  iconv --list 列出iconv支持的语系编码
  iconv -f 原本编码 -t 新编码 filename [-o new file]
  -f:from,后接原本的编码格式
  -t:to,后接新编码格式
  -o file:可选参数,建立新文件
 
例:将/tmp/a.txt从big5编码格式转换成utf8编码格式:
iconv -f big5 -t utf8 /tmp/a.txt -o new.txt
 
 
 
 
 

vim的基础操作的更多相关文章

  1. vim 模式基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 虽然Emacs已经可以完成大部分的编辑操作,但有时候为了方便也会用到vim.所以记录了 ...

  2. Vim入门基础

    公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础.在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来.特点是偏向基础,但对入门者来说足够全面 ...

  3. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作

    无监控,不运维.好了,废话不多说,下面都是干货. 警告:流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html ...

  4. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  5. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  6. Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  7. 搞定vim的窗口操作

    最近在给学生演示数据结构代码时,发现用一般的方法总会有不方便,如果使用ide又觉得太浪费了,后来觉得用vim就够了,使用buffer总会需要页面调来跳出,学生看起来容易迷糊.所以就研究了下vim的窗口 ...

  8. Vim编辑器基础

    Vim编辑器基础 vi:Visual Interface vim:VI iMproved Vim模式 1.编辑模式(命令模式) 只能下达命令,不能键入字符 2.输入模式 键入字符 3.末行模式 左下角 ...

  9. Mysql数据库基础操作

    Mysql数据库基础操作 在mysql数据库中开启使用tab键补全功能 1)修改主配置文件/etc/mysql/my.cnf(mysql和mariadb目录有些不同) vim /etc/mysql/m ...

随机推荐

  1. NodeJs 设置跨域后页面全部变成了源码在浏览器上显示

    百度搜索跨域后得到 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin" ...

  2. python day33 ,socketserver多线程传输,ftp作业

    一.一个服务端连多个客户端的方法 1.服务端 import socketserver class MyServer(socketserver.BaseRequestHandler): def hand ...

  3. Python Django install Error

    Exception:Traceback (most recent call last):  File "/home/djangogirls/myvenv/lib/python3.6/site ...

  4. Day03_Python知识总结

    1.元组:  元组其实跟列表差不多,也是存一组数,但它一旦创建便不能修改,所以又叫只读列表. names = ("alex","jack","eric ...

  5. css+jquery 实现图片局部放大预览

    今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...

  6. ES6学习重难点总结(持续更新)

    Symbol 1.Symbol.iterator Symbol.iterator指向对象的默认遍历器方法: String.prototype[Symbol.iterator] //ƒ [Symbol. ...

  7. Sql Server 默认值

    --1.取得数据库所有表的默认值: select t3.name as 表名,t1.name as 字段名,t2.text as 默认值 ,t4.name from syscolumns t1,sys ...

  8. 基于CDH5.12安装Kylin及官方用例测试

    1 kylin 简介 Apache Kylin是2013年由eBay 在上海的一个中国工程师团队发起的.基于Hadoop大数据平台的开源 OLAP引擎,它采用多维立方体预计算技术,利用空间换时间的方法 ...

  9. exp迁移测试库10.2.0.5

    目的: 将一套10.2.0.5的UP-UNIX系统的数据,迁移到一台Windows环境下. 迁移方案:由于不同的操作系统,为了方便迁移,只是测试,使用EXP/IMP方式. 迁移流程: 一.源端导出 1 ...

  10. Lua实现Map

    通过Lua中自带的table来实现一个Map,可以根据键值来插入移除取值 map = {} local this = map function this:new() o = {} setmetatab ...