zoukankan      html  css  js  c++  java
  • linux备忘录-vi和vim

    知识点

    vi的三种模式

    一般模式

    ESC 可回到一般模式

    相关按键
    j 代表 向下按钮
    k 代表 向上按钮
    h 代表 向左按钮
    l 代表 向右按钮
    20j 等代表 向下移动20行
    Ctrl + f 代表 Page down
    Ctrl + b 代表 Page up
    Ctrl + d 代表 向后翻半页
    Ctrl + u 代表 向前翻半页
    n[space] -> 向右移动n个字符
    0或者[home] -> 移动该行的最前的一个字符
    $或者[end] -> 移动到该行的最后一个字符
    H -> 移动到屏幕最上方第一行的第一个字符
    M -> 移动到屏幕中间行第一个字符
    L -> 移动到屏幕最下方一行的第一个字符
    G -> 移动到档案的最后一行
    nG -> 移动到第n行
    n[ENTER] -> 光标向下移动n行
    /word -> 向上搜索word
    ?word -> 向下搜索word
    n -> 向下搜索
    N -> 向上搜索
    :n1,n2s/word1/word2/g -> 在n1行到n2行搜索word1,并替换成word2
    :1,$s/word1/word2/g -> 全文搜索word1并替换成word2
    :1,$s/word1/word2/gc -> 全文搜索word1并替换成word2,取代前显示提示符
    x -> 向后删除一个字符,相当于del
    X -> 向前删除一个字符,相当于backspace
    dd -> 删除游标所在行
    ndd -> 连续删除n行
    d0和d$ -> 删除光标到该行的最前、或最后的字符
    d1G -> 删除光标前面的所有内容
    dG -> 删除光标后面的所有内容
    yy -> 复制光标所在那一行
    yy -> 复制光标向下n行
    y1G、yG、y0、y$ -> 类似于d
    p -> 下一行开始粘贴
    P -> 在上一行粘贴内容
    u -> 复原前一个动作
    Ctrl + r -> 重做前一个动作
    . -> 重复前一个动作

    区块选择

    v -> 光标经过的字符反白选择
    V -> 光标经过的行反白选择
    Ctrl + v -> 长方形的方式选择
    y -> 复制反白的地方
    d -> 删除反白的地方

    编辑模式

    在一般模式下,按下 i oa等字符进入编辑模式

    按不同的字符有不同的效果
    i -> 在光标所在处插入
    I -> 在该行第一个非空字符插入
    o -> 在光标所在下一行插入新行
    O -> 在光标所在上一行插入新行
    r或R -> 进入取代模式,r取代一次,R一直取代

    指令模式

    在一般模式下按下 : /?三个中的任何一个按钮,就能进入命令模式

    命令

    在命令模式下的命令

    1. :wq (存储后退出)
    2. :w (保存)
    3. :q! (强行退出,不保存)
    4. :wq! (强行写入,并退出)
    5. :w filename (另存为filename档案)
    6. :r filename (在光标所在读入filename档案数据)
    7. :n1,n2 w filename (将n1到n2行另存为filename档案)
    8. :! command (执行shell脚本)
    9. :set nu (显示行号)
    10. :set nonu (取消行号)
    11. :n (编辑下一个档案)
    12. :N (编辑上一个档案)
    13. :files (列出vim开启的所有档案)
    14. :sp filename (窗口分割)

    Ctrl + w + j -> 移动到下一个窗口
    Ctrl + w + k -> 移动到上一个窗口
    Ctrl + w + q -> 退出该窗口

    1. :vs (窗口左右切割)
    2. e! 恢复成档案原本的内容

    vim 环境设定 ~/.vimrc ~/.viminfo

    :set hlsearch (设定高亮搜寻)
    :set nohlsearch (取消高亮搜寻)
    :set autoindent (设定自动缩排)
    :set noautoindent (取消自动缩排)
    :set backup (设定自动备份)
    :set nobackup (取消自动备份)
    :set ruler (显示右下角的状态信息)
    :set noruler (取消右下角的状态信息)
    :set showmode (显示左下角的状态信息)
    :set noshowmode (取消左下角的状态信息)
    :set backspace=(012) (设定backspace)
    0或1,仅可删除刚输入的字符
    2,可以删除任意字符
    :set all (显示目前所有的环境参数设定)
    :set (显示与系统默认值不同的参数设定)
    :syntax on (语法高亮)
    :syntax off (取消语法高亮)
    :set bg=dark
    :set bg=light

    配置文件

    总的配置文件 /etc/vimrc ,建议修改个人配置文件 ~/.vimrc,例如

    ~/.vimrc
    set hlsearch "高亮搜寻,这是注释"
    set nu "显示行号"
    set autoindent
    set backspace=2
    set ruler
    set showmode
    set bg=dark
    syntax on

    其他知识

    Ctrl + z 将程序丢到背景去执行

    vim 编码问题需要考虑

    1. linux系统默认支持的语系,与 /etc/sysconfig/i18n 有关
    2. 终端bash语系,与环境变量 LANG 有关
    3. 档案原本的编码
    4. 开启终端机的软件的编码,如窗口接口

    一般需要保证第3点第4点的编码保证一致。

    DOS 使用的断行字符 ^M$ CRLF 回车换行
    linux 使用的断行字符 LF 换行

    DOS 与 linux 间的格式转换

    dos2unix [-kn] file [newfile]
    unix2dos [-kn] file [newfile]
    -k 不修改 mtime
    -n 保持旧档,输出到新档
    dos2unix -k -n oldfile newfile

    档案的编码装换

    iconv --list 列出iconv支持的语系
    iconv -f 原本编码 -t 新编码 filename [-o newfile]
    iconv -f big5 -t utf8 file.big5 -o file.utf8

    big5 为 ISO-8859

    参考

    鸟哥的Linux私房菜 第三版

  • 相关阅读:
    线程概念简介 什么是线程 多线程上篇(七)
    进程通信概念简介 多线程上篇(六)
    进程同步经典示例 多线程上篇(五)
    进程同步概念简介 多线程上篇(四)
    进程控制概念简介 多线程上篇(三)
    进行概念详解 多线程上篇(二)
    操作系统与程序运行以及进程简介 多线程上篇(一)
    Mybatis动态SQL简单了解 Mybatis简介(四)
    Mybatis sql映射文件浅析 Mybatis简介(三)
    Mybatis配置信息浅析 MyBatis简介(二)
  • 原文地址:https://www.cnblogs.com/smallpi/p/7306964.html
Copyright © 2011-2022 走看看