zoukankan      html  css  js  c++  java
  • vim 入门

    简介

    vim是所有类Unix系统内嵌的文本编辑器vi的升级版,代码补全、编译及错误跳转等方便编程的功能特别丰富,支持自定义。

    命令模式

    即:用打开vim文件后的初始模式,使用键盘控制光标移动来操作。

    光标移动快捷键

    操作 快捷键 解释
    向下移动光标 向下方向键,j键,或者空格键 每按一次,向下移动一行
    向上移动光标 向上方向键,k键或者是backspace键 每按一次,向上移动一行
    向左移动光标 向左方向键或者h键 每按一次,向左移动一个字符
    向右移动光标 向右方向键或者l键 每按一次,向右移动一个字符
    移动到下一行行首 回车键 每按一次,光标会移动到下一行的行首
    移动到上一行行首 -键 每按一次,光标会移动到上一行行首
    移动至文件最后一行 G键 移动到最后一行的行首

    文本操作快捷键

    操作 快捷键 解释
    从右插入 a 在光标右边插入文本
    从左插入 i 在光标的左边插入文本
    行尾追加 A 在当前行尾追加文本
    行首插入 I 在当前行的开始插入文本
    插入行 O或o O键在当前行的上面插入新的一行,o键在当前行的下面插入一个新行。
    覆盖文本 R 覆盖光标当前所在的位置以及后面的若干文本
    合并行 J 将当前光标所在行与下面的一行合并为一行

    文本复制和粘贴快捷键

    操作 快捷键 说明
    复制行 yy 将当前行复制到缓冲区。通过ayy,byy,cyy,可以定义多缓冲区,这样可以多个单独的行复制到对应的缓冲区,各个缓冲区相互之间不会受到影响
    复制多行 nyy 复制当前行以及下面的n行到缓冲区,n表示一个整数。与yy相同也可以使用anyy,bnyy,cnyy,来定义多缓冲区
    复制单词 yw 复制从光标到当前词尾的字符
    复制多个单词 nyw n是一个整数,表示从当前位置起,复制n个字符
    复制光标到行首 y^ 从光标所在的位置开始,复制到当前行的行首
    复制光标到行尾 y$ 从光标所在位置开始,复制到当前行的行尾
    粘贴到光标后面的位置 p 将缓冲区中的字符串插入到光标的后面,如果有多个缓冲区,就用ap,bp,cp的方式进行粘贴
    粘贴到光标前面的位置 P 将缓冲区中的字符串插入到光标的前面,如果有多个缓冲区,就用ap,bp,cp的方式进行粘贴

    删除文本快捷键

    操作 快捷键 说明
    删除当前字符 x 删除光标所在位置的字符
    删除多个字符 nx 删除从光标所在位置开始,到后面的n个字符
    删除当前行 dd 删除光标所在的行
    删除多行 ndd 删除从当前行开始的n行
    撤销上一步操作 u 撤销刚刚执行的操作
    撤销多个操作 U 撤销针对当前行的所有操作

    插入模式

    使用任何文本操作快捷键都会进入该模式,上下左右四个键移动光标,backspace键和delete键移除光标前的字符

    末行模式(底线命令模式)

    使用 :进入末行模式

    常用命令

    操作 命令 说明
    打开另一个文件 :e 打开另一个文件,文件名作为参数
    保存文件 :w 保存文件,将文件的改动写入磁盘
    退出 :q 退出编辑器
    强制退出 :q! 不保存修改,直接退出
    保存退出 :wq 文件写入磁盘后退出,即使文件没有被修改也强制写入,并更新文件的修改时间。
    保存退出 :x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间。(与wq几乎没有差别)
    跳转指定行 :n 跳转到第n行
    显示序号 :set nu或者是:set number 在每行前面显示行号(:set nonu 表示不显示序号)
    替换字符串 : s/old/new,: s/old/new/g, :x,y s/old/new/g或者是:%s/old/new/g :s/old/new表示用new字符串替换当前行中首次出现的old字符串;:s/old/new/g表示用字符串new替换当前行中所有的old字符串;:x,y s/old/new/g表示用new替换从x,到y之间的所有old字符串;:%s/old/new/g表示用new替换当前文件的所有字符串old
    删除指定行 :xd,:x,yd :xd删除第x行; :x,yd删除第x到y之间的行

  • 相关阅读:
    JqGrid在IE8中表头不能分组的解决办法
    Task 异步小技巧
    封装好的socket,拿去用
    反射 实现不同模型相同属性赋值 第二集(automapper)
    .net破解二(修改dll)
    .net破解一(反编译,反混淆-剥壳)
    c/s 自动升级(WebService)
    反射实现不同模型相同属性赋值
    row_number() over()分页查询
    SQL函数
  • 原文地址:https://www.cnblogs.com/hxlinux/p/12930211.html
Copyright © 2011-2022 走看看