Linux学习笔记(10)文本编辑器vim
vim是一个功能强大的全屏幕文本编辑器,是Linux/Unix最常用的文本编辑器,其作用是建立、编辑、显示文本文件。vim的特点是没有菜单,只有命令。
vim主要有三种工作模式,分别为命令模式、插入模式、编辑模式。三者的关系可由下图来表示:

1 vim常用操作
(1)插入命令
|
命令 |
作用 |
|
a |
在光标所在字符后插入 |
|
A |
在光标所在行尾插入 |
|
i |
在光标所在字符前插入 |
|
I |
在光标所在行首插入 |
|
o |
在光标下插入新行 |
|
O |
在光标上插入新行 |
(2)定位命令
|
命令 |
作用 |
|
:set nu |
设置行号 |
|
:set nonu |
取消行号 |
|
gg |
到第一行 |
|
G |
到最后一行 |
|
nG |
到第n行 |
|
:n |
到第n行 |
|
$ |
移至行尾 |
|
移至行首 |
(3)删除命令
|
命令 |
作用 |
|
x |
删除光标所在处字符 |
|
nx |
删除光标所在处后n个字符 |
|
dd |
删除光标所在行 |
|
dG |
删除光标所在行到文件末尾内容 |
|
ndd |
删除光标所在行后n行(包括当前行) |
|
D |
删除光标所在处到行尾内容 |
|
:n1,n2d |
删除指定范围行 |
(4)复制和剪切命令
|
命令 |
作用 |
|
yy |
复制当前行 |
|
nyy |
复制当前行以下n行(包括当前行) |
|
dd |
剪切当前行 |
|
ndd |
剪切当前行以下n行(包括当前行) |
|
p,P |
粘贴在当前光标所在行下或行上 |
(5)替换和取消命令
|
命令 |
作用 |
|
r |
取代光标所在处字符 |
|
R |
从光标所在处开始替换字符,按ESC结束 |
|
u |
取消上一步操作 |
(6)搜索和搜索替换命令
|
命令 |
作用 |
|
/string |
搜索指定字符串,搜索时忽略大小写:set ic,取消忽略:set noic |
|
n |
搜索指定字符串的下一个出现位置 |
|
:%s/old/new/g |
全文替换指定字符串 |
|
:n1,n2s/old/new/g |
在一定范围内替换指定字符串 |
其中g表示不询问确认,如果是c的话表示询问确认
(7)保存和退出命令
|
命令 |
作用 |
|
:w |
保存修改 |
|
:w new_filename |
另存为指定文件 |
|
:wq |
保存修改并退出 |
|
ZZ |
快捷键,保存修改并退出 |
|
:q! |
不保存修改并退出 |
|
:wq! |
保存修改并退出(文件所有者和root可使用) |
2. vim的使用技巧
(1)将一个文件的内容导入到文本文件中,其格式为:
:r 文件名
例:创建test文本,写入如下内容,将/etc/issue的内容复制到test文本中
[root@localhost ~]# vi test I am ws. What's your name? My name is LiMing I am glad to see you.
在最后一行的下一行插入issue的内容,在命令模式下输入:r /etc/issue,可得:
I am ws. What's your name? My name is LiMing I am glad to see you! CentOS release 6.5 (Final) Kernel \r on an \m
(2)在不退出vim的情况下,执行相应的操作命令,其格式为:
:!命令
例:如在命令模式下执行ls命令
I am glad to see you! CentOS release 6.5 (Final) Kernel \r on an \m :!ls [No write since last change] anaconda-ks.cfg install.log install.log.syslog
(3)导入命令执行结果,相当于将前两者进行综合,其格式为:
:r !命令
例:在test的文本末尾添加日期,在命令模式下输入:r !date,其结果为:
I am ws. What's your name? My name is LiMing I am glad to see you! CentOS release 6.5 (Final) Kernel \r on an \m Fri Jan :: CST
(4)定义快捷键
可以为常用的命令定义快捷键,其格式为:
map 快捷键 触发命令
注:快捷键的创建需要同时按下Ctrl+v+创建快捷键的字母
例1:创建一个快捷键,可使在行首加入注释符#,只需在命令模式下输入:map ^P I#<ESC>,其中^P为Ctrl+v+p同时按下后的显示,I#即为行首插入注释符#,<ESC>表示退出编辑模式到命令模式。
然后在第一行执行Ctrl+p,即可得到如下结果:
#I am ws. What's your name? My name is LiMing I am glad to see you! CentOS release 6.5 (Final) Kernel \r on an \m Fri Jan :: CST
例2:创建删除行首注释符#的快捷键,在命令模式下输入:map ^B 0x。
例3:在当前光标下为邮箱创建快捷键,在命令模式下输入如下命令:
:map ^H i123@qq.com
(5)连续注释行,该命令与搜索替换命令1.(6)类似。如在连续多行添加注释符#,在命令模式下输入如下命令:
:n1,n2s/^/#/g
其中^表示行首
相对的,取消连续行注释可以在命令模式下输入如下命令:
:n1,n2s/^#//g
如果以"//"表示注释符的话,则连续注释行可在命令模式下输入如下命令:
:n1,n2s/^/\/\//g
其中"\"表示转义字符。
例:在test文本中的前两行加入//注释符:
//I am ws. //What's your name? My name is LiMing I am glad to see you! CentOS release 6.5 (Final) Kernel \r on an \m Fri Jan :: CST
(6)替换
在文本文件中,可以将一个字符串替换为另一个字符串,如将mail替换为123@qq.com,其命令格式为:
:ab mail 123@qq.com
然后在文本中写入mail,按空格或Enter键则mail自动替换为123@qq.com。
通常设置的快捷键或替换在系统重启时会消失,如果想长时间的保存快捷键的定义或替换等,可以在每个用户的家目录(如root在/root,用户在/home/用户)下写入配置文件.vimrc(root下如/root/.vimrc),然后在该配置文件中编辑模式下写入所需要的命令,且行首无需加冒号(:)。
Linux学习笔记(10)文本编辑器vim的更多相关文章
- Linux学习笔记(四) vi编辑器
一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...
- Linux学习笔记(九)Vim文本编辑器的使用
Vim文本编辑器的使用 Vim的工作模式 1.命令模式 2.输入模式 3.编辑模式 进入Vim 1.使用Vim打开文件 2.直接进入指定位置 Vim基本命令 1.插入命令 2.光标移动命令 3.使用V ...
- Linux学习笔记之VI(VIM)编辑器
百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1 进入和退出vi 进入:在终端命令行输入 vi ...
- 【Linux】中默认文本编辑器 vim 的入门与进阶
Linux 基本操作 vim 篇 vim 简介 vim 是 Linux 上最基本的文本编辑工具,其地位像是 Windows 自带的记事本工具,还要少数的 Linux 系统自带 leafpad 编辑器, ...
- Linux学习笔记之十二————vim编辑器的分屏操作
一.分屏操作: sp: 上下分屏,后可跟文件名 vsp: 左右分屏,后可跟文件名 Ctr+w+w: 在多个窗口切换 二.启动分屏: 1.使用大写O参数进行垂直分屏 $ vim -On file1 fi ...
- Linux学习笔记13—Vi编辑器的学习
文本编辑工具vim.vi1. vim与vi的最大区别是vim编辑的时候是带颜色显示的.Vi不带颜色显示.2. yum install -y vim-enhanced 如果没有安装VIM 使用上面的命令 ...
- MiZ702学习笔记10——文本实例化IP的方法
之前,添加vivado自带IP的时候,都是以图形化的方式:一般是新建一个Block Design顶层文件,然后将图形化的ip贴到,Block Design中. 但是,在进行PL的开发过程中,有时不想使 ...
- linux学习笔记-10.解压与压缩
1.gzip压缩 gzip a.txt 2.解压 gunzip a.txt.gzgzip -d a.txt.gz 3.bzip2压缩 bzip2 a 4.解压 bunzip2 a.bz2bzip2 - ...
- 小白的linux学习笔记10:安装nginx和第一个网页
sudo yum install nginx sudo systemctl status nginx sudo systemctl start nginx 检查端口:netstat -tlpn sud ...
- Linux学习笔记之如何设置vim中的格式如行号等
在我们编写代码程序时,我们时常想追求更好的格式,下面写一下我认为挺实用的格式命令以及如何更改 如果我们打开vim在其命令模式中输入格式命令时,下一次重新打开vim还是会和原先一样,所以我们需更改其配置 ...
随机推荐
- Call to undefined function mysql_connnect()
PHP Fatal error: Call to undefined function mysql_connnect() in /var/www/html/mysqltest.php on line ...
- web开发架构设计
2015-07-31 13:10:38 一, web服务器 .负载均衡 .不做对URL的rewrite逻辑判断, 全部转发到代码服务器的单一入口文件, 由代码去全权处理 二, 代码服务器(常跟web服 ...
- ACM/ICPC 之 数据结构-邻接表+DP+队列+拓扑排序(TSH OJ-旅行商TSP)
做这道题感觉异常激动,因为在下第一次接触拓扑排序啊= =,而且看了看解释,猛然发现此题可以用DP优化,然后一次A掉所有样例,整个人激动坏了,哇咔咔咔咔咔咔咔~ 咔咔~哎呀,笑岔了- -|| 旅行商(T ...
- Java中的Comparable接口和Comparator接口
Comparator位于包java.util下,比较器,是在集合外部定义排序.Comparable位于包java.lang下,代表当前对象可比较的,是在集合内部实现排序. Comparable代表一个 ...
- Bootstrap modal垂直居中
Bootstrap modal垂直居中 在网上看到有Bootstrap2的Modal dialog垂直居中问题解决方法,这种方法自己试了一下,并不能完全居中,并且窗口的大小不一样的话,每次显示的m ...
- SAP 凭证类别
文章摘要:基本分为收.付.转三类,和传统的会计凭证分类一样.SA,总帐凭证.(转帐凭证)KA,供应商凭证.(付款凭证)KR,应付供应商凭证.(付款凭证)KG,供应商转来的红字发票,SAP称为贷方凭证. ...
- algorithm 中的常用函数
非修改性序列操作(12个) 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 fin ...
- 【leetcode】Minimum Window Substring (hard) ★
Given a string S and a string T, find the minimum window in S which will contain all the characters ...
- HDU 5875 Function -2016 ICPC 大连赛区网络赛
题目链接 网络赛的水实在太深,这场居然没出线zzz,差了一点点,看到这道题的的时候就剩半个小时了.上面是官方的题意题解,打完了才知道暴力就可以过,暴力我们当时是想出来了的,如果稍稍再优化一下估计就过了 ...
- 项目差异class文件提取-->上线用
package fileReader; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStre ...