zoukankan      html  css  js  c++  java
  • vim编辑器

    1. vi与vim

    vi和vim,简单来说就是程序开发工具。vim是vi的升级版。那为什么要学vi和vim呢?CentOS上默认使用vim来替换vi,而且很多命令会直接调用vim作为数据编辑的接口。

    1.1 三种模式
    • command mode
    • insert mode
    • command-line
    • visual block(可视化模式,为vim所独有)

    常用命令

    • h, j, k, l 向左,下,上,右四个方向移动光标
    • Ctrl + f[orward], b[ackward], u[pward], d[ownward] 向下,上翻整页,向上,下翻半页
    • 0 移动到当前行的最前面
    • $ 移动到当前行的最后面
    • G 移动到文件的最后面
    • gg 移动到第一行
    • n 光标向后移动n行

    • /word 向后查找word
    • ?word 向前查找word
    • n 重复前一个动作
    • N 反向进行前一个查找操作

    • :n1, n2s/word/word1/g 将n1-n2行之间的word替换成word1
    • :n1, $s/word/word1/g 将n1到文件末尾的word替换成word1
    • :n1, $s/word/word1/gc 将n1到文件末尾的word替换成word1并需要确认

    • x与X 相当于[del] 和[backspace]键

    • dd 删除一整行

    • yy 复制光标所在的一行

      配合n+ 使用很方便


    • p 行后粘贴
    • P 行前粘贴
    • u 恢复到上一步
    • Ctrl + r redo

    • . 重复上一个操作

    • :n 编辑下一个文件
    • :N 编辑上一个文件
    • :files 列出目前这个vim开启的所有文件
    1.2 vim的额外功能
    1.2.1 可视化块
    可视化块的按键意义
    v 字符选择
    V 行选择
    Ctrl+v 可视化区块
    y 将反白的地方复制起来
    d 将反白的地方删除掉
    p 将刚刚复制的区块,在光标所在处粘贴
    1.2.2 多文件编辑
    多窗口情况下的按键功能
    :sp [filename] 打开一个新窗口,如果有filename,表示在新窗口创建一个新文件,否则表示两个窗口为同一个文件(同步显示)
    [Ctrl]+w+↑/k 先按下[Ctrl]不放,然后按w放开所有按键,之后按下j移到下方的窗口
    [Ctrl]+w+↓/j 同上,不过为移到下方的窗口
    [Ctrl]+w+q 其实就是:q结束退出,如果想结束下方的窗口,那么利用ctrl+w+j,然后:q即可退出,也可以按ctrl+w+q,此外也可以是:close关闭所在的窗口
    1.2.3 vim的关键词补全功能
    组合键 补齐的内容
    ctrl+x --> ctrl+n 通过目前正在编辑的这个[文件的内容文字]作为关键词,予以补齐
    ctrl+x --> ctrl+f 以当前目录内的[文件名]作为关键词,予以补齐
    ctrl+x --> ctrl+o 以扩展名作为语法补充,以vim内置的关键词,予以补齐

    其中1和3使用的比较频繁。前者用来少敲字,后者用来语法补齐

    1.2.3 vim环境设置与记录:/.vimrc、~/.viminfo

    vim环境记录:~/.viminfo

    vim环境设置:~/.vimrc

    1.2.4 vim常用命令示意图

    img

    1. 2.5 vim的编码以及换行符问题

    可以使用

    iconv

    • f 选项,指定源文件
    • t 选项,指定输出文件
    • o选项,将转码后的文件转存成新文件

    进行文件编码格式的转换,使用

    dos2unix

    • k 选项,保留原文件的mtime
    • n 选项,保留原本的旧文件,将转换后的文件输出到新文件

    进行dos与linux的换行符的转换。

  • 相关阅读:
    命令行打开无线网络设置
    WebView2 的使用记录
    QT-Mac:在Mac下实现QT程序的打包及公证
    QT:CEF实现js函数与C++函数的异步调用
    QT-Mac:QT Creator 中QT Versions显示无效的QT版本的解决办法
    QT-Mac: Undefined symbols for architecture x86_64
    全局键盘钩子失效与WebRTC的关系分析
    第十二届蓝桥杯决赛 大学 B 组 C/C++ 做题记录
    Luogu P2671 求和 | 数学奇偶性&前缀和
    2021铁三决赛 PWN cardstore | 格式化字符串 & ret2libc
  • 原文地址:https://www.cnblogs.com/hwahe/p/14272615.html
Copyright © 2011-2022 走看看