Vim 是vi的加强

Gvim图形化的vim

Vim/Vi简介

Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/Unix上最常用的文本编辑器,他们 的作用是建立,编辑,显示文本文件

Vim/Vi没有菜单,只有命令

本节介绍的Vim/vi主要作用在查看修改一些配置文件,或编写自己得脚本。

Vim/Vi工作模式

进入时是命令模式,按下的东西都是命令,按i,a,o进入插入模式,按esc回到命令模式

:加上命令就是编辑模式,执行完之后自动回到命令模式。

插入命令

命令       作用

a          在光标后附加文本

A          在本行行末附加文本

i           在光标前插入文本

I           在本行开始出插入文本

o           在光标下插入新行

O          在光标上插入新行

定位命令

命令                    作用

h,方向左键             左移一个字符

j,方向下键              下移一行

k,方向上键             上移一行

l,方向右键              右移一个字符

$                        移至行尾

0                       移至行首

H                       移至屏幕上端

L                        移至屏幕下端

M                      移至屏幕中间

定位命令

命令                作用

:set  nu            设置行号

:set  nonu          取消行号

gg                   到第一行

G                    到最后一行

nG                   到第nhang

:n                  到第n行

删除命令

命令                 作用

x                    删除光标所在处的字符

nx                   删除光标所在处后的n个字符

dd                   删除光标所在的行,ndd删除n行

dG                   删除光标所在行到末尾的内容

D                    删除从光标所在处到行尾

:n1 ,n2 d           删除指定范围的行

复制和剪切命令

命令         作用

yy,Y          复制当前行

nyy,nY        复制当前行以下n行

dd           剪切当前行

ndd          剪切当前行以下n行

p,P          粘贴在当前光标所在行下或行上

替换和取消命令

命令         作用

r             取代光标所在处字符,按r再键入字符便可替换

R             从光标所在处替换字符,按ESC结束

u             取消上一步操作

搜索和替换命令

命令               作用

/string              向前搜索指定字符串,搜索时忽略大小写:set  ic ,不忽略:set noic

n                  搜索指定字符串的下一个出现位置N从后往前找

:%s/old/new/g      全文替换指定字符串

:n1,n2s/old/new/g   在一定范围内替换指定字符串

将g换成c则会询问y(替换光标当前)n(不替换)a(替换所有)q(退出)

:wq  保存退出

ZZ=:wq   都是保存退出

只有文件的所有者和管理员root可以对文件进行强行保存退出:wq!。及时没有写权限。

Linux下要注意特殊的用户root,很多规则限定对管理员root都是无效的。

不保存退出 :q!

:w保存

:w  文件  写入某文件

应用实例

在打开的文件中导入已存在的文件:  :r    文件名

在Vi中执行命令:                    :! 命令

在用Vi编辑文件时通常要留下注释,版权信息等等

:r 和 :! 可以同时使用

:r  !date              将当前系统时间导入文件,就是导入命令的结果

shell脚本,linux配置文件#代表注释

定义快捷键:map  快捷键  触发命令

范例: :map  ^p I#<ESC>       ctrl+p行首加#

:map  ^B 0x

^  ctrl+v ctrl+p   ctrl+v+p  p改变  v不变

:map ^B 0x           ctrl+B 删除本行首字符

:map ^E i1759471147@qq.com  ctrl+E 在光标前插入1759471147@qq.com

连续行注释:  :n1,n2s/^/#/g        ^表示行首,添加的符号为#

:n1,n2s /#//g            将n1-n2的#替换为空

:n1,n2/^#//g   将n1-n2的行首的#替换为空

:n1,n2s/^/\/\//g  有些语言的注释是//,而/是分隔符,此时需使用到转义字符\,意为使用命令或符号的本身含义。

替换命令:

实例:

:ab:  mymail  1759471147@qq.com

输入mymail后按回车或空格会自动替换成1759471147@qq.com

:unab mymail 取消定义

:unmap ^P    取消快捷键定义

若要想使这些配置永久有效,则需要编辑vi的配置文件。

在linux下每一个用户都有一个宿主目录,也称之为家目录.用波浪号代表宿主目录。

~ /home/用户名   ~  /root

如果创建一个新用户,则缺省创建一个宿主目录,默认是在 /home/用户名.

而root 是在/root下。

而vim的配置文件是在用户宿主目录下的.vimrc

vi  /root/.vimrc

vi  ~/.vimrc

可以再里边写入快捷键,一些设置。以后再打开文件是有效的。

:可以不加。

知识点总结:

Vim/Vi工作模式  如何切换,命令属于那种模式

Vim/Vi基本使用

插入,定位,删除,复制,剪切,替换

取消,搜索,保存,退出

Vim/Vi应用技巧

练习:

熟悉Vim/vi工作模式切换

熟悉Vim/Vi常用操作

练习Vim/Vi定义快捷键,连续行操作,导入命令执行结果等技巧

设定Vim/Vi配置文件

Vim/Vi的使用的更多相关文章

  1. 文本编辑器VIM/VI

    vim/vi  功能强大全屏文本编辑器.主要是建立,编辑,显示文本. www.vim.org  构建shell脚本 :set number 使文件出现行号 a 光标后附件文件     i在光标前插入文 ...

  2. (四)文本编辑器Vim/Vi

    目录 前言 常用命令 扩展应用 总结 本系列先前的随笔位于新浪博客 前言 Vi和Vim都是文本编辑器,不同的是Vim是Vi的升级版本,它不仅兼容Vi的所有指令,而且还有一些新的特性在里面. Vim/V ...

  3. Vim/Vi实用技巧(第二版)

    Vim/Vi实用技巧 1.导入文件 :r [文件名] #导入到当前编辑的文件中 如 :r /etc/inittab 文件上部为/etc/services文件,下部为/etc/inittab文件 2.执 ...

  4. Vim/Vi常用操作(第二版)

    周围同事不是用vim就是Emacs,你要是用一ultraedit,你都不好意思跟人家打招呼;什么插件呀,语法高亮呀,拼写检查呀,能给它开的都给它开着,就是一个字儿:酷. 你说这么牛B一东西,怎么着学会 ...

  5. Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

  6. Linux——vim/vi 简单学习笔记

    Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件.Vim/Vi 没有菜单,只有命令. 早前也用过Vim变过C++/C的代码, ...

  7. vim/vi 命令详解

    在工作中,要对服务器上的文件进行的修改,可以使用ssh远程登录到服务器上,并且使用vi进行快速的编辑即可,在没有图形界面的环境下,要编辑文件,vi是最佳选择! vi命令是Linux中最经典的文本编辑器 ...

  8. linux vim vi编辑时撤销输入操作

    linux vim vi编辑时撤销输入操作 1,esc退出输入状态 2,u 撤销上次操作 3,ctrl+r 恢复撤销

  9. (转)vim(vi)常用操作及记忆方法

    vim(vi)常用操作及记忆方法 原文:https://www.cnblogs.com/doseoer/p/6241443.html vi(vim)可以说是linux中用得最多的工具了,不管你配置服务 ...

随机推荐

  1. 原生js--文档加载时间

    onload触发时机:文档和所有的图片都加载完毕 DOMContentLoaded触发时机:文档加载并解析完毕,所有deferred脚本执行完毕.但此时图片和async脚本可能依旧在加载. ready ...

  2. js ==和===以及!= 和 !==的区别

    一.js == 与 === 的区别[转] 1. 对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型 ...

  3. 时间的类型的相互转换(date/String)及时区的比较

    String ->Date ->String @Test public void date() throws ParseException{ String sdate = "01 ...

  4. SecureCRT无法使用root账户远程连接ubuntu

    ========1.问题============ SecureCRT无法使用root账户远程连接ubuntu 用其他账户连接,正常 用root账户连接,不能连接 =========2.原因====== ...

  5. Windows正向绑定shell和反向反弹shell的Python代码

    Windows下的shell原理 经过查阅资料,使用os.dup2(nfd, ofd)的方式重定向socket的输入输出到windows系统的cmd是无法做到的,属于系统原因,不能直接复制Linux下 ...

  6. Microsoft Office Enterprise 2007 在安装过程中出错的解决方法

    今天笔者在使用PowerPoint 2007打开一个ppt的内嵌的excel表格时报如下错误: 无法找到 服务器应用程序.源文件.和项目,或返回的未知错误.请重新安装服务程序 然后就先把ppt文件发给 ...

  7. Unity3D笔记 GUI 四、实现选项卡三

    一.代码: using UnityEngine; using System.Collections; /// <summary> /// 选项卡二 /// </summary> ...

  8. 如何通过python代码解压zip包

    转载至https://www.cnblogs.com/flyhigh1860/p/3884842.html 很多人在Google上不停的找合适自己的压缩,殊不知Py的压缩很不错.可以试试.当然C#,J ...

  9. 不错的Spring学习笔记(转)

    Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是s ...

  10. Mapreduce 原理及程序分析

    1.MapReduce(Map+Reduce) 提出一个问题: 目标:你想数出一摞牌中有多少张黑桃. 直观方式:一张一张检查并且数出有多少张是黑桃数目 MapReduce方法则是: 给在座的所有玩家中 ...