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. LeetCode 38 Count and Say(字符串规律输出)

    题目链接:https://leetcode.com/problems/count-and-say/?tab=Description   1—>11—>21—>1211—>111 ...

  2. [原]git的使用(一)---建立本地仓库、add和commit、status和git diff、版本回退使用git reset

    在window下已经安装了git的环境 1.建立本地仓库 mkdir   test     #建立test目录 cd   test        #进入目录 git  init           # ...

  3. mysql架构图

    整体架构图 访问控制图

  4. FPGA时序约束的几种方法 (转)

    FPGA时序约束的几种方法 对自己的设计的实现方式越了解,对自己的设计的时序要求越了解,对目标器件的资源分布和结构越了解,对EDA工具执行约束的效果越了解,那么对设计的时序约束目标就会越清晰,相应地, ...

  5. 【CF671E】Organizing a Race 单调栈+线段树

    [CF671E]Organizing a Race 题意:n个城市排成一排,每个城市内都有一个加油站,赛车每次经过第i个城市时都会获得$g_i$升油.相邻两个城市之间由道路连接,第i个城市和第i+1个 ...

  6. 在python pydev中使用todo标注任务

    在做自动化测试时,有部分代码因需求未定或界面需要更改,代码不做修改或更新,这里就需要用到TODO功能. 在PyCharm中TODO功能很详细,但在pydev中怎么用呢.看了文档后,截图如下: 1.设置 ...

  7. Unity3D笔记 英保通五 鼠标事件与GUI系统双击检测

    一.如何使用GUI事件来检测鼠标是否按下的事件: 获取当前事件:var e:Event=Event.current: using UnityEngine; using System.Collectio ...

  8. slam学习资源

    从零开始学slam: http://blog.csdn.net/akunainiannian/article/details/45363731 史上最全的SLAM学习资料收集  http://www. ...

  9. Oracle卸载之Win7操作系统下Oracle11g 数据库卸载过程图解

    1.首先停止oracle11g数据库的5个服务 右键“计算机”,在下拉菜单列表中单击“管理”,进入计算机管理器.图解步骤如下: 选择左侧工具栏最后一项“服务和应用程序”,点击进入下拉菜单,单击“服务” ...

  10. initrd和initramfs的区别

      Linux内核在初始化之后会执行init进程,而init进程会挂载我们的根文件系统,但由于init程序也是在根文件系统上的,所以这就有了悖论.Linux采用两步走的方法来解决这个问题.Linux2 ...