vim的使用

一、一般模式:光标的移动、复制粘贴、搜索替换

移动光标:

** 向左移动一个字符:h 或 ← **
** 向右移动一个字符:l 或 → **
** 向上移动一个字符:k 或 ↑ **
** 向下移动一个字符:j 或 ↓ **
向左移动n个字符:n + h(其他同理),如10h
向右移动这一行的n个字符(会换到下一行):n + space,如20space
屏幕向上移动一页:Ctrl + b
屏幕向下移动一页:Ctrl + f
屏幕向上移动半页:Ctrl + u
屏幕向下移动半页:Ctrl + d
移动到非空格的下一行:+
移动到非空格的上一行:-
移动到屏幕最上方那一行的第一个字符:H
移动到屏幕最中间那一行的第一个字符:M
移动到屏幕最下方那一行的第一个字符:L
** 移动到这个文件的最后一行:G **
移动到这个文件的第n行:nG
** 移动到这个文件的第一行:gg **
** 向下移动n行:n + enter,如10enter **

加粗部分为常用,以下同理

搜索替换:

** 向光标往下搜索一个word的字符串:/word **
** 向光标往上搜索一个word的字符串:?word **
** 重复前一个搜寻动作 ,如果刚刚我们执行 /word 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 word 的字符串。如果是?word的话就向上搜寻。按下N则反向 **
** 在第n1行与第n2行之间寻找word1这个字符串,并将给字符串取代为word2:n1,n2s/word1/word2/g, 如:10,100s/word/WORD/g **
** 从第1行到最后一行寻找word1字符串,取代为word2: :1,s/word1/word2/g ** ** 从第1行到最后一行寻找word1字符串,取代为word2,取代前提示用户确认(confirm)是否需要取代: :1,s/word1/word2/gc **

删除

** 向前(后)删除一个字符:x(X),相当于backspace **
** 连续向后删除n个字符: nx,如10x **
** 删除光标所在的一整行:dd **
** 删除光标所在的向下n行:ndd **
删除光标所在到第一行的所有数据:d1G
输出光标所在到最后一行的所有数据:dG
删除光标所在到该行最后一个字符:d$
删除光标所在到该行第一个字符:d0

复制

** 复制光标所在的那一行:yy **
** 复制光标所在的向下n行:nyy **
复制光标所在行到第一行的所有数据:y1G
复制光标所在行到最后一行的所有数据:yG
复制光标所在到该行最后一个字符:y$
复制光标所在到该行第一个字符:y0

粘贴

** 将已复制的数据在光标下(上)一行贴上:p(P); **
** 将光标所在行与 下一行的数据结合成一行: J **
重复删除多个数据:c,如向下删除10行:10cj
** 复原前一个动作:u **
** 重复上一个动作:Ctrl + r **

二、一般模式到编辑模式的切换

进去输入模式

  • i/I
    ** 从目前光标所在处输入:i **
    ** 从目前所在行的第一个非空格符处开始输入:I **

  • a/A
    从目前光标所在的下一个字符处开始输入:a
    从光标所在行的最后一个字符处开始输入:A

  • o/O
    ** 在光标所在的下一行输入新的一行:o **
    ** 在光标所在的上一行输入新的一行:O **

进入取代模式

  • r/R
    ** 取代光标所在的那一个字符一次:r **
    ** 一直取代光标所在的字符,直到按esc **

三、一般模式到命令行模式的切换

指令行的存储、离开等

** 保存编辑: :w **
** 强制写入: :w! **
** 退出: :q **
** 强制退出,不保存修改: :q! **
** 保存修改后退出: :wq **
** 将修改后的数据另存为一个文件: :w filename **
在当前编辑的数据中,读入另一个文件的数据: :r filename
将n1到n2的内容存储成另一个文件filename: :n1,n2 w filename
** 暂时离开 vi 到指令行模式下执行 command 的显示结果: :!command ;例如:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的文件信息 **

vim环境的变更

显示行号: :set nu
取消显示行号: :set nonu

你可能感兴趣的:(vim的使用)