Linux之Vim编辑器使用
vim文本编辑器用于建立 编辑 显示文本文件,vim没有菜单,只有命令
在windows 平台下可使用gvim进行编写
Vim三种工作模式:

常有命令:
1.INSERT插入命令
i 在光标前插入 I 在当前行首插入
a 在光标后插入 A在当前行尾插入
o 在当前行插入一行 O 在当前行上插入一行
2.光标定位命令
h 左移一个字符 (等同于方向键<---) H (head) 移至屏幕上端——第一行开头
j 移到下一行 (等同于上方向键) M (middle) 移至屏幕中间——中间行开头
k 移到上一行 (等同于下方向键) L (line) 移至屏幕下端——最后行开头
l 右移一个字符 (等同于方向键--->)
$ 移至行尾
移至行首(数字零)
gg 光标到第一行 nG 光标到第 n 行 2G 到第二行等于 :2
G 光标到最后一行 :n 光标到第 n 行
3.命令模式进入——编辑模式
: 命令 <Enter>回车
效果:执行后,制动回到命令模式
例如:显示当前文件的行号 :set nu 取消行号 :set nonu
4.删除命令
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除当前行 ndd 删除n行 10dd 删除当前行到后面10行
dG 删除光标所在行到末尾的内容
D 删除光标所在处到行尾的字符
:n1,n2d 删除 行1 到 行2 范围内的行
5.复制和剪切命令
yy, Y 复制当前行 dd 剪切当前行
nyy,nY 复制当前行以下几行 ndd 剪切当前行以下几行
p 粘贴在当前行下一行
P 粘贴在当前行上一行
6.替换和取消命令
r 取代光标处字符(替换当前光标所在处单个字符)
R 从光标所在处开始替换字符 按ESC键结束
u(小写) 取消上一步操作(在没保存之前生效) undo
7.索索和替换命令
@1 /string 注意Linux中区分大小写,搜索字符串的时候,如果但是小写,大写的字符串不会被搜索出
在搜索前可使用命令忽略大小写
:set ic 忽略大小写
:set noic 关闭大小写
例如:在文件中搜索处含有ftp或FTP的行
:set ic
/ftp
n next 从上向下查找下一个出现的位置
N 从下向上查抄下一个出现的位置
@2 全文替换指定字符串
:%s/old/new/g 替换文本中所有字符串
%s 全部 old 要被替换的字符串 new 被替换后的字符串 g global 不提示直接替换 若为c 会提问是否替换 old字符串
例如: :%s/jack/linux/g 将文件中的jack 替换成linux
:n1,n2s/old/new/g 在指定范围内替换字符串
8.退出命令
:wq 保存并退出 快捷键 ——> ZZ (按两次大写ZZ)
:wq! 强行保存退出(当文件所有者或root没有 w 写入权限时,可以使用强行保存退出)
只有文件所有者可root超级管理员可以使用此命令
:q! 不保存退出
:w 保存一下,不退出 相当于windows的 Ctrl+S
:w /root/test 另存为到另一个位置
应用实例
1.导入文件
:r fliename 把filname文件的内容导入到当前文件中的指定位置
例如:把 /home/test/hello.php 文件导入到当前文件中 :r /home/test/hello.php
2.在vim下执行 命令
:! 命令 例如 : :! ls -al /etc/test/
我们在编辑文件时没必要先保存退出,再执行命令,可以直接在vim中执行
:! 命令 执行后回车继续
小技巧:1和2一起使用
例如 :我们在写脚本的时候需要标注出 注释 版权 负责人 最后修改时间
可使用 :r !date 把当前系统时间导入到文件中指定位置
3.定义快捷键
:map 快捷键 触发命令 回车执行命令
例如 为每一行行首添加注释#
快捷键定义 :map ^P I# I表示进入插入模式,光标定位到行首 #插入#符号
注意:
定义快捷键时 ^P 的输入使用(分别按Ctrl+v和 Ctrl+p或(Ctrl+v+p一起敲))进行输入
x
插入邮箱地址 :map ^E ijack@sina.com
我们可以把日常常用的工作定义为快捷键提高编写的效率
4.连续行注释
@1 :n1,n2s/^/#/g ^ 表示行首
在n1到n2的范围内行首加入#注释符 :4,8s/^/#/g 在第4到8行的行首加上#符
@2 :n1,n2s/#//g 去掉字符 即替换为空
4,8s/#//g 会把范围内的所有#符号给去掉不单指行首
4.8s/^#//g 只把范围内的行首的#符去掉
@3 特殊字符转义处理
如果使用的注释符为 // 则需要进行转义
:1,5s/^\/\//g 在1到5行的行首插入//注释符 对//进行转义
5.替换命令
:ab mail jack@sina.com
可把mail看作 a jack@sina.com 看作b
在vim 中输入 mail 按空格或回车则变为 jack@sina.com
如果在文件中需要不断出入较长的相同文本可使用这一命令
取消 :ab 定义
:unab mail 回车 然后在文件中编辑则不会被替换
也可以取消快捷键的定义 :unmap ^P
注意:
上述我们在vim中的一些设置和快捷键的定义只在当前打开编辑的文件下有效,vim保存退出后都会失效,我们可以通过更改vim配置文件来使得自己的设置对于每次打开的文件都适用
编辑vim配置:
每个用户都有一个宿主目录
root 的宿主目录为 /root
普通用户宿主目录为 /home/uername
在宿主目录下都有一个文件 .vimrc(缺省文件——空文件)
我们可以在这个文件下配置vim的配置
例如我们可以修改root的 .vimrc 文件
vi /root/.vimrc
在里面写入
set nu 打开每个文件都显示行号 可加入:也可不写
map ^P I# 快捷键加注释
ab mail jack@sina.com
Linux之Vim编辑器使用的更多相关文章
- Linux的vim编辑器中的翻页命令
当我们进入Linux的vim编辑器查看脚本时,按上下键查看是不是非常慢?这个时候就要用到我们的翻页快捷键了,快捷键命令如: 整页翻页命令为:Ctrl + f 键 f 的英文全拼为:forward: ...
- 【Linux】Linux中VIM编辑器的使用
vim编辑器是我们在Linux中不可或缺的一部分,我们通常会使用它去自定义编辑文本已达到我们的需求,那么vim文本编辑器具体要怎么使用呢.今天跟大家分享一下vim编辑器的使用: vim编辑器模式介绍 ...
- Linux中vim编辑器常用操作技巧
Normal 0 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-styl ...
- linux vi/vim 编辑器学习总结
linux vi/vim 编辑器学习总结 很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统.项目部 ...
- Linux中vim编辑器 的 快捷键 --- 常用 的 都比较全
Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到 ...
- linux下vim编辑器查找 关键字
在 linux vim 编辑器 下查找 关键字 方法[一] 1?short_open_tag : 它的意思是vim 打开文件的第一行 ? : 它的意思是反向查找 short_open_tag ...
- Linux (五) VIM编辑器
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.简介 Linux系统环境下的一款非常重要的文本编辑工具,我们在Linux环境下几乎所有的文本文件 ...
- 【Linux】Vim编辑器-批量注释与反注释
[-] vim编辑器---批量注释与反注释 方法一 块选择模式 插入注释 取消注释 方法二 替换命令 批量注释 取消注释 实例演示 vim编辑器---批量注释与反注释 在使用vim编写代码的时候, ...
- Linux的vim编辑器
vim编辑器常用的三种模式 vim /文件路径 进入编辑器,编辑该文件 例:vim /etc/passwd 命令行模式:在编辑器中直接输入命令 dd:删除光标所在的一行 ndd:删除光标所在的向下的n ...
- Linux vi/vim编辑器
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...
随机推荐
- Spark RDD概念学习系列之rdd的依赖关系彻底解密(十九)
本期内容: 1.RDD依赖关系的本质内幕 2.依赖关系下的数据流视图 3.经典的RDD依赖关系解析 4.RDD依赖关系源码内幕 1.RDD依赖关系的本质内幕 由于RDD是粗粒度的操作数据集,每个Tra ...
- ural 1106. Two Teams 二分图染色
链接:http://acm.timus.ru/problem.aspx?space=1&num=1106 描述:有n(n<=100)个人,每个人有一个或多个朋友(朋友关系是相互的).将其 ...
- 1242Rescue (优先队列BFS)
Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is ...
- 异步加载图片到GridView上,防止OOM
图片资源: private int fore[]; private int back[]; fore = new int[]{R.drawable.a0, R.drawable.a1, R.drawa ...
- FreeMarker 自己定义指令(三)
1. 模板文件 test04.ftl foo <@customUpper> bar f <#-- 这里同意使用全部的 FTL --> <#list ["red& ...
- 基于Flume的美团日志收集系统(一)架构和设计【转】
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...
- Form实现无刷新上传文件并返回自定义值
今天开发过程中遇到了这样一个问题:需要将Excel上传至服务器进行解析,但是在文档不合适的情况下希望可以不刷新页面提示用户文档不合适.冥思苦想了半天,在网上找了不少资料最终试验成功,在此分享下处理方法 ...
- 前端工具之WebPack解密--使用
接上一篇的内容继续来说,背景篇的内容主要是介绍web前端工具的出现的原因和当前主要JavaScript模块化编程的几种规范!这篇内容主要介绍webpack的初级使用! 注意:目前webpack分为两个 ...
- php mysqli注意问题
今天写了这个一段代码 function ip_get_method($action , $device){ if($action != 'search'){ request_die(false,'un ...
- 隐藏iframe边框
关于iframe在ie浏览器中边框隐藏的问题,一直困惑着我.其实就是一个很简单的办法,主要设置一个属性即可解决,方法如下: <iframe frameborder="0"&g ...