为什么要学习Vim,Vim和Vi的区别,Vim的基本使用方法(部分)

为什么很多大型网站都采用Linux作为服务器?

1. 为什么要学习Vim,是为了装B吗?

在Windows操作系统横行的今天,为什么要学习使用Vim这样需要各种快捷键的文本编辑器呢?大型网站的服务器一般是无图形化界面的Linux系统,当需要进行调试、远程处理问题的时候,只能调出terminal(终端窗口),然后用命令"vim index.html"这样的方式,调出vim编辑器,再进行更改。

引申:

为什么大型网站选择使用Linux作为服务器系统,知乎上的yegle大神给出了个人感觉很中肯的回答,Linux 作为服务器操作系统的优势是什么?

2. Vim和Vi的区别

Vim是Vi的升级版本,Vim不仅兼容所有的Vi语法,还加入一些新的特性在里面,如:语法高亮、可视化操作、多平台支持(终端、Windows、MacOS等)。总之,学习好Vi,就学会了Vim。

vim编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及 Linux系统的任何版本,vim编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vim也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

3. Vim快捷键练习利器----VimTutor

Vimtutor是新手可以快速入门Vim的一个Vim内置应用,直接在Vim命令行下,敲Vimtutor,回车即可进入练习。

4. Vim的三种模式

Vim可以分为三种模式,分别为:命令行模式(Command mode)

插入模式(Insert mode)

底行模式(Lastline mode)

命令行模式控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

插入模式只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

底行模式将文件保存或退出vim,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过,一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

5. Vim的基本操作

a) 进入Vim

在系统光标提示符后,输入vim及文件名后,回车,进入Vim编辑画面。

特别注意,进入vim之后,是处于「命令行模式(command mode)」,要切换到「插入模式(Insert mode)」才能够输入文字。

b) 切换至插入模式(Insert mode)编辑文件

在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

c) 插入模式(Insert mode)切换到命令行模式(Command mode)

在插入模式下,按一下「ESC」键即可。

d) 退出vim及保存文件

在命令行模式(Command mode)下,按冒号「:」键,进入底行模式(Last Line mode)

常见底行模式下的命令行::w filename 文件以filename为文件名保存

:wq 文件存盘并退出vim

:q 文件不存盘并退出vim

:q! 文件不存盘强制退出vim

6. 命令行模式下的功能键(部分)

a) 从命令行模式切换为插入模式的三种方式「 i 」:从当前光标位置进入插入模式

「 a 」:从当前光标位置的下一个字符进入插入模式

「 o 」:从当前光标位置的下一行进入插入模式

b) 从插入模式切换为命令行模式按「ESC」键

c) 移动光标vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

d) 行尾追加不管光标在该行的什么位置,直接按大写字母「A」即可

e) 删除单词dw:把光标停留在需要删除的单词前面,依次按下「d」「w」,即可

de:把光标停留在需要删除的单词前面(无视单词前面的空格),依次按下「d」「e」,即可

f) 从当前光标处删除到行末把光标停留在需要删除的句子前面,依次按下「d」「$」,即可

g) 快速跳转到行首按下数字「0」,即可

h) 使用计数以删除单词示例:this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.

依次将鼠标定位到ABC前,按「d」「2」「w」,可以删除:ABC DE

将鼠标定位到FGHI前,按「d」「4」「w」,可以删除:FGHI JK LMN OP

将鼠标定位到Q前,按「d」「3」「w」,可以删除:Q RS TUV

得到句子:

this line of words is cleaned up.

i) 删除当前行鉴于删除当前行这一操作的高频性,vim设计者简化了快捷键,按「d」「d」即可。

连续删除两行,从当前行开始,则为:「2」「d」「d」

j) 撤销更改a. 按小写字母「u」,撤销上一步的更改操作;

b. 按大写字母「U」,撤销整行的更改操作;

c. 「Ctrl+R」撤销上一步「撤销操作」。

k) 将刚删除的内容置入其他行之前刚刚删除的内容,会放入Vim编辑器的寄存器中。基于如此原理,可以将之认为成Windows操作系统的「剪切」操作。

先在想删除的行,按「d」「d」,进行删除操作;

再在想插入那行的前一行按「p」键即可。

l) 替换将光标放到需要改的字符前,先按「r」键,再输入想更改的字符即可。

m) 跳转顶部跳转命令:先按「Control」+「g」键,在终端底部调出一栏,然后输入「g」「g」即可;

底部跳转命令:先按「Control」+「g」键,在终端底部调出一栏,然后输入大写字母「g」即可;

特定行跳转命令:直接输入行号,然后输入大写字母「g」即可。

n) 查找命令

字符串查找:输入英文斜杠「/」,后面紧接需要搜索的字符串即可。

查找下一个相同字符串,就紧接着按小写字母「n」;

查找上一个相同字符串,就紧接着按大写字母「N」。

配对括号查找:在编程语言里,配对括号「 ( 」「 ) 」「 { 」「 } 」很常见,当定位到一个配对括号的一半时(注意光标要定位在该括号之前),按「%」,即可自动跳转到与之匹配的第一个配对括号处。

o) 替换字符串

当前行替换命令在标准命令行模式下,光标定位到当前行,按英文冒号「 :」,再输入s/oldstring/newstring/g 回车,即可。

完整语句为:

:s/dogg/dog/g

特定几行替换命令在标准命令行模式下,按英文冒号「 :」,再输入#,#s/oldstring/newstring/g 回车,即可(其中#代表特定的首尾两行的行号)。

完整语句为:

:5,8s/dogg/dog/g

全文替换命令在标准命令行模式下,按英文冒号「 :」,再输入%s/oldstring/newstring/g 回车,即可(其中#代表特定的首尾两行的行号)。

完整语句为:

:%s/dogg/dog/g

全文替换命令(每个匹配项替换前需确认)在标准命令行模式下,按英文冒号「 :」,再输入%s/oldstring/newstring/gc 回车,即可(其中#代表特定的首尾两行的行号)。

完整语句为:

:%s/dogg/dog/gc

linux终端vim底行模式点冒号,Vim基本使用方法相关推荐

  1. vim 底行命令模式下的全局命令 g(global)

    文章目录 命令格式介绍 常用的 ex 指令 关于 range 参考示例 结合替换指令 s 使用 将包含 pattern 的行追加到指定的寄存器中 插入空行 打印符合要求的行 删除匹配的行 删除不匹配的 ...

  2. Linux 命令行模式下退出 vim

    Linux 命令行模式下退出 vim 命令 说明 :q! 强制退出,不保存 :q 退出 :wq! 强制保存并退出 :w <文件路径> 另存为 :saveas 文件路径 另存为 :x 保存并 ...

  3. vim末行模式下相关操作+配置文件

    vim配置文件 -用户级别 ~/.vimrc -系统级别 /etc/vim/vimrc vim末行模式下相关操作 a.从命令模式->末行模式   i.键盘录入冒号(:) 保存退出  保存不退出: ...

  4. 在Linux系统的命令行中为MySQL创建用户的方法

    这篇文章主要介绍了在Linux系统的命令行中为MySQL创建用户的方法,包括对所建用户的权限管理,需要的朋友可以参考下 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可进行.每个MySQ ...

  5. 【Linux】vim常用命令(多行注释、字符替换,命令模式、底行模式常用命令)

    文章目录 编辑器 - vim vim 的基本概念 vim 的基本操作 vim 在命令模式中的命令集 (

  6. vim 底行命令模式的正则表达式(匹配模式)

    文章目录 一.vim 替换表达式的语法格式 二.vim 关于 range 的表达式 三.vim 关于 flags 的元字符 四.vim 关于数量的元字符 五.环视和固化分组 六.vim 替换表达式的示 ...

  7. linux底行模式显示信息,14天linux命令加强

    linux命令加强 linux命令加强.jpg 复习 cd ./ 当前目录 ../ 上级目录 / 代表根目录 or 代表目录和文件之间的分隔符 .. pwd 查看当前路径 LS 查看当前目录下的文件 ...

  8. linux vi回到末行模式,Linux vi/vim 的命令模式,,编辑模式,末行模式

    命令模式:可以随意的打开一个文件.比如操作 1.[root@room9pc16 ~]# vim /tmp/passwd 按下enter健将会出现如下信息: root:x:0:0:root:/root: ...

  9. linux终端光标变细,【笔记】改变vim或者终端terminal的光标形状。光标变细了之后看起来爽快多了!...

    刚从windows转到linux的用户可能都有一个不爽的地方,就是终端和vim中光标都是一个字符的宽度,很粗,在输入的时候很容易找不到当前输入的字符会出现在哪两个字符中间. 于是乎,为了眼睛痛快.头脑 ...

最新文章

  1. 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务
  2. matlab 基础知识class lt; superclass_name
  3. Spring Aware 到底是个啥?
  4. Python -- Scrapy 命令行工具(command line tools)
  5. 网络爬虫Java还是Python还是c++?
  6. __asm__ __volatile__(: : :memory)
  7. 长文总结半监督学习(Semi-Supervised Learning)
  8. 团队-象棋游戏-需求分析
  9. c语言算法加数据结构等于,数据结构算法(多项式加法)的C语言完美实现
  10. 在Spring中使用jOOQ:CRUD
  11. 瑞幸咖啡上半年营收31.8亿元 同比增长106%
  12. 电视领域“烧钱”不止,酷开为何反成赢家?
  13. 中国首枚芯片邮票问世;苹果开源 Swift System | 极客头条
  14. SpringBoot学习之logback.xml 配置指定包或类输出至单独的日志文件中
  15. 怎么样装mysql_如何安装MySQL数据库
  16. Java笔记 —— 继承
  17. 擦拭法 java 泛型_廖雪峰Java4反射与泛型-3范型-4擦拭法
  18. 使用WWWGrep检查你的网站元素安全
  19. 塔防类游戏实现(一)
  20. 关于PHPExcel导出单元格换行的问题

热门文章

  1. 学习SpringMVC笔记——Intellij IDEA创建SpringMVC项目
  2. C++学习基础八——重载输入和输出操作符
  3. 【杂谈】数学,计算机视觉,图形图像处理
  4. OnClick,OnClientClick和OnServerClick的区别
  5. ORACLE----触发器,存储过程及JOB
  6. vue依赖缓存_Vue SSR服务端渲染之数据缓存
  7. Swift之深入解析类和结构体的本质
  8. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数
  9. POJ 2965.The Pilots Brothers‘ refrigerator
  10. LANGUAGE MODELS ARE OPEN KNOWLEDGE GRAPHS —— 读后总结