Linux学习之Vim/Vi使用(十三)
Linux学习之Vim/Vi使用
- Vim/Vi简介
- Vim/Vi工作模式
- Vim/Vi基本使用
- Vim/Vi应用技巧
Vim/Vi简介
- Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。
- Linux下的编辑器最常用的就是vim或者vi文本编辑。vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了很多实用的功能。?大多数的linux/unix 发行版本中都
使用 vim 代替了原来的 vi 文本编辑器。 如果是centos或者redhat系统,当系统安装完毕后,vi/vim 文本编辑器默认情况下就已经被安装了。如果是debian/ubuntu系统下,默认情况下
,vim编辑器是不会被安装的。你需要在ubuntu系统下手动安装vim编辑。- vi/vim文本编辑器是我们在linux系统下工作可以说是必须会使用的一个工具,因为linux系统的设计理念是一切皆文件,也就是说,你在linux里的任何操作都是对文件的操作,所以会经常去
操作文件,更改文件,保存文件,退出并保存文件。- Vim/Vi 没有菜单,只有命令。
Vim/Vi工作模式
- 命令模式:
- 进入:vi filename
- 退出::wq
- 插入模式:
- i a o
- 注意:从插入模式变为命令模式,按ESC键
- 编辑模式:
- :
- 命令以回车结束运行
- 注意:从编辑模式变为命令模式,按ESC键
Vim/Vi基本使用
- 插入命令
- 命令 作用
- a 在光标后附加文本
- A 在本行行末附加文本
- i 在光标前插入文本
- I 在本行开始插入文本
- o 在光标下插入新行
- O 在光标上插入新行
- 定位命令
- 命令 作用
- h 左移一个字符
- j 下移一行
- k 上移一行
- l 下移一个字符
- $ 移到行尾
- 0 移到行首
- H 移至屏幕上端
- M 移至屏幕中央
- L 移至屏幕下端
- :set nu 设置行号
- :set nonu 取消行号
- gg 到第一行
- G 到最后一行
- nG 到第n行
- :n 到第n行
- 删除命令
- 命令 作用
- x 删除光标所在处字符
- nx 删除光标所在处后n个字符
- dd 删除光标所在行
- ndd 删除光标往下n行
- dG 删除光标所在行末尾的内容
- D 删除从光标所在处到行尾
- :n1,n2d 删除指定范围的行
- 复制和取消命令
- 命令 作用
- yy、Y 复制当前行
- nyy、nY 复制当前行以下n行
- dd 剪切当前行
- ndd 剪切当前行以下n行
- p、P 粘贴在当前光标所在行下或行上
- 替换和取消命令
- 命令 作用
- r 取代光标所在处字符
- R 从光标所在处开始替换字符,按Esc结束
- u 取消上一部操作
- 搜索和替换
- 命令 作用
- /string 向前搜索指定字符串 开启搜索时忽略大小写 :set ic 关闭搜索时忽略大小写 :set noic
- n 搜索指定字符串的下一个出现位置
- :%s/old/new/g 全文替换指定字符串
- :n1,n2s/old/new/g 在一定范围内替换指定字符串,后面g意思是在替换时是否确认,c为没有提示
- r 取代光标所在处字符
- R 从光标所在处开始替换字符,按Esc结束
- u 取消上一部操作
- 保存和退出命令
- 命令 作用
- :w 保存修改
- :w new_filename 另存为指定文件
- :wq 保存修改并退出
- ZZ 快捷键,保存修改并退出
- :q! 不保存修改退出
- :wq! 保存修改并退出(文件所有者可忽略文件的只读属性)
- 注意:对文件可以强行保存退出的只可能是文件所有者或者是root用户
Vim/Vi应用技巧
- 导入文件:r 文件名
- 在Vi中执行命令:!命令
- 在Vi中导入执行命令的结果r !命令
- 定义快捷键:map 快捷键 触发命令
- 连续行注释
- 替换
- 自定义vi使用方式
导入文件:r 文件名
可以将其他文件的内容导入到这个编辑的文件中。
在Vi中执行命令:!命令
在Vi中导入执行命令的结果r !命令
按一次回车回到编辑文件的界面内
定义快捷键:map 快捷键 触发命令
- 范例:
- :map ^P I#<ESC>
#这个快捷键的作用,按ctrl+p后光标跳到在本行开始位置,写入#,用来加注释。- :map ^B 0x
#这个快捷键的作用是光标移到行首,删除光标所在处的字符,用来删除注释。- unmap ^p 取消快捷键
连续行注释
- :n1,n2s/^/#/g
- :n1,n2s/#//g
- :n1,n2s/^/\/\//g
替换
很容易理解,输入一个字符或者字符串,变成另一个字符串。
- 定义替换:ab sammail sam@www.com
- 取消ab替换的定义:unab sammail
自定义vi使用方式
每一个用户都可以定义自己的vi使用方式,配置文件在每个用户的宿主目录下的/.vimrc。
- root /root
- user /home
Linux学习之Vim/Vi使用(十三)的更多相关文章
- Linux学习笔记(四) vi编辑器
一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...
- Linux学习笔记之VI(VIM)编辑器
百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1 进入和退出vi 进入:在终端命令行输入 vi ...
- Linux学习笔记:vi常用命令
在Linux系统中常用vi命令进行文本编辑. vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器.Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved), ...
- linux/linux学习笔记-vim文本编辑器(mooc)
vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...
- Linux学习,Vim以及Vi常用快捷键
VIM配置文件路径: /etc/vmrc ===> 系统配置文件路径 ~/.vimrc ===> 当前用户配置文件路径 $VIM ===> 与VIM配置文件相关的变量 进入插入模式: ...
- Linux学习之六——使用vi和vim
一.vi的三种模式和相互切换 1. 一般模式 1) 移动光标 可以用箭头键,Page Up, Page Down, Home,End等按键移动光标 G,移动到档案最后一行 1G,gg,移动到档案第一行 ...
- 【Linux学习三】VI/VIM全屏文本编辑器
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.打开关闭文件打开文件:vim /path/to/somefilev ...
- Linux学习4——Vim和Bash
一.写在前面 本将将介绍Linux自带的强大的文本编辑器Vim和Bash的相关知识. 二.完成目标 1.了解Vim和Bash的基本概念 2.定制自己的vim 3.Bash中的一些命令 4.管道命令 ...
- linux学习之——vim简明教程
摘自 http://blog.csdn.net/niushuai666/article/details/7275406 ——————————正文开始—————————— 你想以最快的速度学习人类史上 ...
随机推荐
- SpringMVC使用HttpInvoker发布远程服务
参考这篇文章https://www.cnblogs.com/fanqisoft/p/10283156.html 将提供者配置类中的 1 @Bean 2 public HessianServiceExp ...
- python 历险记(四)— python 中常用的 json 操作
目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...
- script & scriptreplay
script是什么 scirpt就是一个命令,可以制作一份记录输出到终端的记录.对于那些想要真实记录终端会话的人来说,这很有用.该记录可以保存并在以后再打印出来. 怎么用 默认情况下,我们可以通过在终 ...
- freeRTOS中文实用教程4--资源管理概述
1.前言 多任务系统中存在一种潜在的风险.当一个任务在使用某个资源的过程中,即还没有完全结束对资源的访问时,便被切出运行态,使得资源处于非一致,不完整的状态 2.并发抢占导致错误的场景 (1)访问外设 ...
- nodejs async waterfull 小白向
async.waterfall([function(callback){var a=3+5;callback(null,a);},function(n,callback) { callback(nul ...
- Java中利用Scanner键入的字符串与其他字符串的比较
利用Scanner获取到键入的字符串与其他字符串作比较时,如果直接用关系运算符 == 比较,得到的结果总是false,因为实际比较的是两个变量引用的内存地址: 而要比较其内容是否相等,可以使用Obje ...
- python模块介绍- binascii:二进制和ASCII互转以及其他进制转换
20.1 binascii:二进制和ASCII互转作用:二进制和ASCII互相转换. Python版本:1.5及以后版本 binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法.通 ...
- 通达OA系统故障解决案例记录
案例1: 现象:在人员访问量大的时候OA系统经卡死,并且经常宕机,需要启动apache服务 优化配置如下: D:\MYOA\conf\http.conf 修改参数如下: <IfModule mp ...
- FreeSWITCH IVR中lua调用并执行nodejs代码
一.功能需求: 通过FreeSWITCH的IVR按键调用相应的脚本文件:nodejs提供很多的模组,可以方便的与其它系统或者进行任何形式的通讯,我的应用是通过nodejs发送http post请求: ...
- Springboot分模块开发详解(1):建立父工程
基础服务,见下: base是父工程,base-entity是实体层,base-dao是DAO层,base-service是业务层,base-controller是WEB控制器层,base-web是页面 ...