zoukankan      html  css  js  c++  java
  • Linux学习笔记:vim

    本文更新于2019-09-05。

    说明:下文中,使用{}引起表示自定义变量,根据实际情况填写。使用[]引起表示内容可选,使用<>引起表示按键内容。(+)表示按键组合

    模式

    vim包括命令模式、编辑模式、底行模式。

    编辑模式 <--------------------- 命令模式 ---------------------> 底行模式
             --------------------->         <---------------------
    

    命令模式

    进入vim时使用的是命令模式。

    按键 说明
    0 光标移动至该行第一个字符
    $ 光标移动至该行最后一个字符
    <Home> 光标移动至该行第一个字符
    <End> 光标移动至该行最后一个字符
    {n}← 光标向左移动n个字符,默认为一个字符
    {n}↓ 光标向下移动n行,默认为一行
    {n}↑ 光标向上移动n行,默认为一行
    {n}→ 光标向右移动n个字符,默认为一个字符
    {n}h 光标向左移动n个字符,默认为一个字符
    {n}j 光标向下移动n行,默认为一行
    {n}k 光标向上移动n行,默认为一行
    {n}l 光标向右移动n个字符,默认为一个字符
    {n}<Space> 光标向右移动n个字符,默认为一个字符
    {n}<Enter> 光标向下移动n行,至其第一个字符
    - 光标移动到非空格的上一行
    + 光标移动到非空格的下一行
    <Page Up> 光标向上移动一页
    <Page Down> 光标向下移动一页
    <Ctrl>(+)b 光标向上移动一页
    <Ctrl>(+)f 光标向下移动一页
    <Ctrl>(+)u 光标向上移动半页
    <Ctrl>(+)d 光标向下移动半页
    H 光标移动至此屏幕第一行的第一个字符
    M 光标移动至此屏幕中间行的第一个字符
    L 光标移动至此屏幕最后一行的第一个字符
    gg 光标移动至文件第一行的第一个字符
    {n}G 光标移动至文件的第n行的第一个字符,默认为最后一行
    <Ctrl>(+)wj 光标移动至下面的窗口
    <Ctrl>(+)w↓ 光标移动至下面的窗口
    <Ctrl>(+)wk 光标移动至上面的窗口
    <Ctrl>(+)w↑ 光标移动至上面的窗口
    <Ctrl>(+)wq 退出当前窗口
    v 多字符选择,反白选择光标经过的连续字符
    V 多行选择,反白选择光标经过的连续行
    <Ctrl>(+)v 块选择,反白选择光标移动开始和移动结束位置间的矩形文本块
    {n}X 剪切光标前n个字符,默认为一个字符
    {n}x 剪切光标所在字符起后n个字符,默认为一个字符
    d0 剪切光标前一个字符至该行第一个字符
    d$ 剪切光标所在字符至该行最后一个字符
    {n}dd 剪切光标所在行开始的n行,默认为一行
    d1G 剪切光标所在行至第一行
    dG 剪切光标所在行至最后一行
    d 剪切反白选择的字符
    y0 复制光标前一个字符至该行第一个字符
    y$ 复制光标所在字符至该行最后一个字符
    {n}yy 复制光标所在行开始的n行,默认为一行
    y1G 复制光标所在行至第一行
    yG 复制光标所在行至最后一行
    y 复制反白选择的字符
    P 粘贴,如粘贴行则粘贴在当前行上一行
    p 粘贴,如粘贴行则粘贴在当前行下一行,可黏贴矩形文本块
    J 将光标所在行与下一行合并至同一行
    {n}c{direction} 进入插入模式,并向指定方向剪切n个字符或n行,direction可为←、↓、↑、→、h、j、k、l
    i 进入插入模式,从光标所在字符处开始插入
    I 进入插入模式,从光标所在行第一个非空白符处开始插入
    a 进入插入模式,从光标所在字符的下一字符处开始插入
    A 进入插入模式,从光标所在行最后一个字符后开始插入
    o 进入插入模式,在光标所在行下一行插入新行
    O 进入插入模式,在光标所在行上一行插入新行
    r 使用下一个输入的字符替换光标所在字符,只替换一次
    R 进入替换模式,一直替换光标所在字符直至输入<Esc>,期间可移动光标
    u 撤销上一个操作
    <Ctrl>(+)r 重做上一个撤销的操作
    . 重复上一个操作
    n 重复底行模式输入的前一个查找操作
    N 反方向重复底行模式输入的前一个查找操作
    ZZ 如文件有改动,则保存文件后退出vim;如文件没有改动,则直接退出vim

    编辑模式

    编辑模式包括:插入模式,界面左下方有“-- INSERT --”提示;替换模式,界面左下方有“-- REPLACE --”提示。

    按键 说明
    <Esc> 退出编辑模式,回到命令模式

    底行模式

    底行模式需使用<Enter>结束输入。

    按键 说明
    /{word} 向下查找word
    ?{word} 向上查找word
    :n 编辑下一个文件
    :N 编辑上一个文件
    :files 列出打开的所有文件
    :sp [{filename}] 打开新窗口。如不指定filename则使用当前窗口相同的文件
    :set {setting} 修改vim设置
    :{n},{m}s/{src}/{dst}/g[c] 将n(含)至m(含)行的src替换为dst,m使用$表示最后一行。可使用c指定替换前需要提示确认
    :r {filename} 读取指定文件内容并插入至光标所在行的下一行
    :[{n},{m}] w {filename} 将文件内容保存至指定文件,可指定n(含)至(m)行
    :w[!] 保存文件。可使用!强制保存文件,但实际能否保存仍与文件权限有关
    :q[!] 退出vim或退出当前窗口。可使用!强制退出,不保存文件
    :wq[!] 保存文件后退出vim。可使用!强制保存后退出,但实际能否保存仍与文件权限有关
    :![ ]{command} 暂时离开vim,执行Linux命令
    <Esc> 退出底行模式,回到命令模式

    .vimrc

    vim设置。每行一个设置值,可以:开始,可使用"注释该行后面的内容。

    设置 说明
    set 显示所有与默认值不同的设置
    set all 显示当前所有设置
    set autoindent 自动缩进
    set backspace=N 设置编辑模式下退格键的动作。2可以删除任何字符,0和1只能删除刚刚输入的字符,无法删除已存在的字符
    set backup 自动备份文件。即当文件有任何改动时,原文件会在文件所在目录下备份为FILENAME~
    set bg=dark|light 指定背景色调
    set hlsearch 高亮查找结果
    set noautoindent 取消自动缩进
    set nohlsearch 取消高亮查找结果
    set nonu 取消显示行号
    set nu 显示行号
    set ruler 显示右下角的提示
    set showmode 显示左下角的提示
    syntax on|off 开启/关闭语法高亮

    .viminfo

    记录vim的历史操作。

    .swap

    使用vim打开文件后,会在文件所在目录下生成.FILENAME.swap文件。

  • 相关阅读:
    Javascript、CSS和IMG之网页执行探索
    从零开始学习Node.js例子九 设置HTTP头
    从零开始学习Node.js例子八 使用SQLite3和MongoDB
    如何做到 jQuery-free?
    jQuery的deferred对象详解
    使用openxml读取xml数据
    Drupal commerce 性能优化
    DataTable数据进行排序、检索、合并、分页、统计
    jquery实现替代iframe的功能
    9_Jvn框架之实现ORM持久层save操作(第九讲)
  • 原文地址:https://www.cnblogs.com/garvenc/p/linux_learning_vim.html
Copyright © 2011-2022 走看看