• vim与程序员 vi/vim 的使用


    vim与程序员

     

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

    但是目前我们使用比较多的是 vim 编辑器。

    vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

    什么是 vim?

    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

    vi/vim 的使用

    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。 这三种模式的作用分别是:

    命令模式:

    用户刚刚启动 vi/vim,便进入了命令模式。

    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令

    移动光标

    复制代码
    w(e)  移动光标到下一个单词
    b    移动到光标上一个单词

    数字0  移动到本行开头
    $    移动光标到本行结尾

    H    移动光标到屏幕首行
    M    移动到光标到屏幕的中间一行
    L    移动光标到屏幕的尾行
    gg    移动光标到文档的首行
    G    移动光标到文档尾行

    ctrl + f  下一页
    ctrl + b  上一页

    `.  移动光标到上一次的修改行
    复制代码

    查找

    复制代码
    /chaoge     在整篇文档中搜索chaoge字符串,向下查找
    ?chaoge     在整篇文档中搜索chaoge字符串,向上查找
    
    *        查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
    #        查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
    
    gd        找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上

    %    找到括号的另一半!!
    复制代码

    复制,删除,粘贴

    复制代码
    yy    拷贝光标所在行
    dd    删除光标所在行
    D     删除当前光标到行尾的内容
    dG    删除当前行到文档尾部的内容
    p     粘贴yy所复制的内容
    x   删除光标所在的字符
    u 撤销上一步的操作
    复制代码

    数字与命令

    3yy    拷贝光标所在的3行
    5dd    删除光标所在5行

     输入模式

    在命令模式下按下字母i

    即可进入输入模式,可以编写代码啦。。。

    底线命令模式

    在命令模式下输入冒号(英文的:),就进入了底线命令模式,在底线命令模式下可以输入单个或多个字符的命令,常用命令有:

    复制代码
    :q!     强制退出
    :wq!    强制写入退出
    :set nu 显示行号
    :数字  调到数字那行

    随时按下esc可以退出底线命令模式
    复制代码

    vim工作模式

    vim按键

    移动光标

    复制代码
    移动光标的方法
    h 或 向左箭头键(←)    光标向左移动一个字符
    j 或 向下箭头键(↓)    光标向下移动一个字符
    k 或 向上箭头键(↑)    光标向上移动一个字符
    l 或 向右箭头键(→)    光标向右移动一个字符

    向下移动5行      5j
    向右移动10字符    10l

    n(space)    按下数字n,例如10,然后按下空格,光标会向右移动10个字符
    复制代码

    底线命令

    :! command    暂时离开vim指令模式,执行command的结果
    例如  :!ip a    临时看一下ip信息,然后可以回到vim

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

    更多nb的vim用法请看菜鸟教程:http://www.runoob.com/linux/linux-vim.html

  • 相关阅读:
    为什么webstrom无法格式化代码?
    总结jq的一些特效
    欢迎自己入住博客
    JavaScript基础
    HTTP协议的概念作用和特点
    STM32(二十五)读写内部flash
    STM32(二十四)MDK编译过程以及文件类型全解
    STM32(二十三)RTC-实时时钟
    STM32(二十二)DAC输出正弦波
    STM32(二十一)SDIO-SD卡读写测试
  • 原文地址:https://www.cnblogs.com/16795079a/p/10609434.html
Copyright © 2020-2023  润新知