博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux-vim学习入门
阅读量:4494 次
发布时间:2019-06-08

本文共 1813 字,大约阅读时间需要 6 分钟。

  

1.前言

    vi/vim是linux中很重要的文本编辑器。我第一次使用这个编辑器时,很不习惯,甚至都不知道如何移动光标和插入字符。慢慢地经过学习,才知道如何使用vi/vim。
    vi/vim的作用是建立、编辑和显示文本文件,在vi/vim中,没有菜单,只有命令。
2.常用命令
    vim有三种工作模式:命令模式、插入模式和编辑模式。一进入vim,默认的是命令模式,即输入的内容, 全部当成是命令。当编辑模式执行完以后,自动回到命令模式。下面给出一张图,说明这三种模式的切换:
 
 
 
2.1插入模式
  a
在光标后附加文本
  A
在本行行末附加文本
  i
在光标前插入文本
  I
在本行开始插入文本
  o
在光标下插入新行
  O
在光标上插入新行
 
2.2定位命令
  h、方向左键
左移一个字符
  j、方向下键
下移一行
  k、方向上键
上移一行
  l、方向右键
右移一个字符
  $
移至行尾
  0
移至行首
  H
移至屏幕上端
  M
移至屏幕中央
  L
移至屏幕下端
  :set nu
设置行号
  :set nonu
取消行号
  gg
  G
到第一行
  到最后一行
  nG
到第n行
  :n
到第n行
 
2.3删除命令
  x
删除光标所在处字符
  nx
删除光标所在处后n个字符
  dd
删除光标所在行,ndd删除n行
  dG
删除光标所在行到文件末尾的内容
  D
删除从光标所在处到行尾的内容
  :n1,n2d
删除指定范围的行
 
2.4复制和剪切命令
  yy、Y
复制当前行
  nyy、nY
复制当前行一下n行
  dd
剪切当前行
  ndd
剪切当前行以下n行
  p、P
粘贴在当前光标所在行下或行上 注:在vi中,剪切就是删除之后再粘贴
 
2.5替换和取消命令
  r
取代光标所在处字符
  R
从光标所在处开始替换字符,按Esc结束
  u
取消上一步操作 注:比如改变单个字符,先输入r,再输入需要更改的字符。比如将字符a改成b。这适合用于少量修改时使用
  [Ctrl]+r 重做上一个动作
  这个 u 不 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键。
  .  小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等劢作,按下小数点『.』就好了!
 
2.6搜索和替换命令
 
  /word
 向光标之下
搜索word
字符串
  ?word 向光标之上搜索word字符串
  n
 搜索指定字符串的下一个出现位置
  N。与n 刚好相反,为『反向』进行前一个搜寻
  搜索时忽略大小写 :set ic
  :%s/old/new/g 
全文替换指定字符串
  :n1,n2s/old/new/g 
在一定范围内替换指定字符串 注:n是从前往后,N是从后往前找
  set noic是设置大小写敏感
  :n1,n2s/old/new/c    替换时进行询问是否真的替换
 
  ZZ与:wq的作用一样,都是保存退出
  对于readonly文件,如果是root或者改文件所有者,即使该文件没有写权限,使用:wq!也能保存该修改之后的文件。
  仅仅保存但不退出 :w
  另存为  :w /root/file.bak
 
2.7其它命令
  导入文件 :r 文件名
  在vi中执行命令 :! 命令
  定义快捷键 :map 快捷键  触发命令
  范例:  :map  ^P  I#<ESC>         注:^p是这样输入的 ctrl+v+v  --> ^p
       :map  ^B  0x
  连续行注释 :n1,n2s/^/#/g              注:^表示行首
      :n1,n2s/^#//g
      :n1,n2s/^/\/\//g
  替换  :ab huhuimail    huhuics@gmail.com         取消ab命令    :unan huhuimail
  :r !date   在vi中加入命令执行的结果
  快捷键插入邮箱  :map ^e ihuhuics@gmail.com
 
2.8修改用户vim设置
  修改用户vim设置,比如能永久保存快捷键
  vi ~/.vimrc
  缺省这个文件是空的,然后可以写入一些快捷键
 
 
附:vi/vim操作键盘图
 

转载于:https://www.cnblogs.com/machanghai/p/5476577.html

你可能感兴趣的文章
java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
查看>>
python 之redis
查看>>
jQuery学习记录(二):如何使用jQuery库
查看>>
[P1273]有线电视网
查看>>
poj 2940
查看>>
1017 Queueing at Bank (25)(25 point(s))
查看>>
个人随笔之《寻找真实的自己》
查看>>
判断是否是素数(质数)
查看>>
嵌入式第10次实验报告
查看>>
Android Fragment 详解
查看>>
alert确定后刷新页面
查看>>
LINQ基础(三)
查看>>
mysql练习
查看>>
STL的第二级配置器
查看>>
(诊断)No module named MySQLdb
查看>>
Emacs 安装配置使用教程
查看>>
VS2017常用快快捷键
查看>>
docker问题
查看>>
kubelet disk 压力
查看>>
velocity.js的使用
查看>>