Linux 中 VIM 的使用

这篇博客详细介绍了Linux环境下Vim编辑器的使用,包括Vim的基本模式、常用快捷键、个性化配置和解决Linux编辑Windows文件的特殊字符问题。通过学习,读者可以掌握Vim的高效操作,如自动格式化代码、使用快捷键移动和修改文本,以及如何处理DOS/Windows文件中的^M符号。此外,还分享了Vim的配置文件位置、RC的含义和一些实用的Vim配置技巧。
摘要由CSDN通过智能技术生成

Vim 官网:http://www.vim.org/

VIM 实用技巧:https://wenku.baidu.com/view/21c5f387d4d8d15abe234ecb.html
vim 的一些小技巧:https://www.douban.com/group/topic/1815089
vim 简单实用的技巧总结:http://www.tuicool.com/articles/rq6ryqi
《Vim 实用技巧》笔记:http://darksun.blog.51cto.com/3874064/1548082

VIM 使用技巧 PDF 下载:http://download.csdn.net/download/freeking101/9882394

Kali自带vim配置:https://blog.csdn.net/u012359618/article/details/52267319

史上最全 Vim 快捷键键位图(入门到进阶)https://www.linuxidc.com/Linux/2016-06/132019.htm

如果出现vim鼠标右键不能复制粘贴并且进入visual,可能是终端配置问题,把 Xterm 模式改为 linux 模式。或者设置 set mouse-=a。  set mouse=a【这个是用来开启鼠标功能的,a表示所有模式】

gg=G    (自动格式化全部代码)
mG=nG(自动格式化第m到第n行)
==         (格式化当前行)

Vim 键位图

vim键位图(如果网页图片看不清,可以 “右键->在新标签页中打开图片” 查看)

英文版(基础版)

简体中文版(基础版)

程序员定制版

https://blog.csdn.net/zhlh_xt/article/details/52458672

个性化配置

vim 是什么?

所有的Linux/UNIX都会默认安装Vi,现在主流的linux都会给默认安装vim。vim是Vi IMproved,是编辑器Vi的一个加强版。Vim/Vi是一个功能强大的全屏幕文本编辑器, 是Linux/UNIX上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件;Vi几乎支持所有的语言。Vim/Vi 没有菜单,只有命令。 如果你是一名职业的SE,那么一定在寻找一款出色的能够自由定制、满足灵活编辑功能的编辑器。那么答案,就是vim或者Emacs。本文介绍vim编辑器。至于另一款强大的编辑器Emacs,以后有时间在整理学习。。。。

配置文件在哪?

Windows系统的配置文件是vim安装目录下的vimrc文件。
Linux系统,RHEL和CentOS的配置文件是/etc/vimrc,Debian和Ubuntu的配置文件是/usr/share/vim/vimrc。
Mac OS X的配置文件是/usr/share/vim/vimrc。

vimRC 中的 RC 是什么意思?

一般在运行某个软件、环境或工具之初,要初始执行的一些命令,称为 Run Commands,即 RC。根据 Wikipedia.org 的记载,RC 缩写的用法源自 MIT 的相容分时操作系统(Compatible Time-Sharing System,CTSS)[参考1]。所以以后如果你看到了SystemRC 或者 ScreenRC,也就知其缘由了。

三种基本模式

在《大家来学vim》中提到vim有6+5种模式,除了细分程度不同外,实际上常用的只有3种模式:Normal Mode、Insert Mode和Command-line Mode。从Normal Mode进入Insert Mode,可以按i、I、a、A、o、O、r、R即可。其中i和I表示插入(Insert),r和R表示替换(replace)。从Insert Mode进入Normal Mode,只需要按ESC键即可。从Normal Mode进入Command-line Mode,可以按“:”、“/”、“?”。其中“:”表示输入vim命令,“/”表示后面输入要向下搜索的字符串,“?”表示后面输入要向上搜索字符串。从Command-line Mode进入Normal Mode,只需要按ESC键即可了。可以把Normal Mode理解为常态,进入其他任何一种模式,需要某种特殊方式,而从其他特殊模式回到Normal Mode,就按ESC键即可。

Vim/Vi工作模式

vim中那些最最常用的配置

超级强大的vim配置:http://blog.csdn.net/freeking101/article/details/62037015

(1)颜色设置

syntax on       "开启代码高亮
syntax off      "关闭代码高亮
syntax enable   "开启代码高亮

(2)搜索设置

set hlsearch    " 开启搜索高亮   
set nohlsearch  " 关闭搜索高亮 或者 命令模式下输入:nohlsearch 
                " nohlsearch 是 no highlight search 缩写, 可以简写 noh 或者set noh
set incsearch   " 输入搜索字符串的同时进行搜索
set ignorecase  " 搜索时忽略大小写

可以使用如下方式来实现快速查找:

  1. 最快的方式是让光标停留在想要查找的单词的任意一个字母上面, 然后输入Shift + * ,即可快速选中该单词,并且可以通过 n 或 N 进行上一个或下一个的匹配。
  2. 让光标停留在单词的第一个字母上, 然后输入yw拷贝该单词, 然后输入 / (Ctrl + R) 0 (即 /”0),回车, 就查找到了第一个匹配的单词, 并且可以通过 n 或 N 进行上一个或下一个的匹配。
    解释一下:
    Ctrl + r 是指使用寄存器 , 你会发现先输入/ , 然后输入 Ctrl + r , 会立刻变为 “ , 即寄存器的前缀, 然后 ”0 就可以理解了吧? 合起来就是 /“0, 就是查找刚才复制的那个单词, 不懂的请查看上一个帖子:
    vim的复制粘贴(系统剪切板):http://blog.csdn.net/hk2291976/article/details/42196559
    vim之寄存器的使用和配置:http://blog.csdn.net/ballack_linux/article/details/53078836
  3. 还有一种方式, 和第二种方式差不多,不过是将单词拷贝到系统剪贴板, 然后再从系统剪贴板拿出来。 即选中需要查找的单词, 然后输入 “+y, 然后输入/(Shfit + Ctrl + v), 就查找到了第一个匹配的单词, 并且可以通过 n 或 N 进行上一个或下一个的匹配。

(3)用户界面

set showmode        " 开启模式显示
set ruler           " 开启光标位置提示
set number          " 显示行号
set nonu            " 不显示行号
set cursorline      " 强调光标所在行
set cmdheight=1     " 命令部分高度为 1

(4)编辑辅助配置

set autoindent      " 自动缩进
set noautoindent    " 不自动缩进
set smartindent     " 智能缩进
set autoread        " 当文件在外部被改变时,vim自动更新载入
set showmatch       " 显示匹配的括号

(5)set 命令 和 set 的一些选项

set命令
    :set ic  搜寻时忽略大小写 (ic:ignore case)
    :set noic  搜寻时不忽略大小写
    :set number   显示行号
    :set nonumber   不显示行号 

set 的一些选项
    all:列出所有选项设置情况
    term:设置终端类型
    ignorance:在搜索中忽略大小写
    list:显示制表位(Ctrl+I)和行尾标志($)
    number:显示行号
    report:显示由面向行的命令修改过的数目
    terse:显示简短的警告信息
    warn:在转到别的文件时若没保存当前文件则显示NO write信息
    nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
    nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
    mesg:允许vi显示其他用户用write写到自己终端上的信息

参考:

[1]Run Commands,http://en.wikipedia.org/wiki/Run_commands
[2]The Ultimate vim Configuration(vimRC),http://amix.dk/blog/post/19486

Vim 使用

Vim同时打开并切换多个文件

  • 1、用 vim 打开一个文件,例如:original.trace
  • 2、在普通模式下,输入:":sp"(不含引号)横向切分一个窗口,或者":vsp"纵向切分一个窗口,敲入命令后,你将看到两个窗口打开的是同一个文件
  • 3、在普通模式下,输入:":e new.trace",在其中一个窗口里打开另一个文件
  • 4、在 普通模式下 ctrl+w,再按一下 w,可以在两个窗口之间切换

Vim跨文件复制

现在把 a.txt 的三行复制到 b.txt
1、用 vim 打开 a.txt
        # vim a.txt
        Esc 进入指令模式(默认刚打开就是这个模式)
        输入"a3yy
        解释:引号要结合shift输入,a 代表剪贴板 a(26个英文字母都可以),3yy当然代表从当前行复制3行了
        退出a.txt
        :q
2、打开 b.txt
        光标移动到你想要复制的位置
        进入指令模式,输入"ap
        解释:引号要结合shift输入,a 代表使用剪贴板 a,p 当然代表粘贴了


Vim 复制到系统剪贴板

  • 1.首先查看 vim --version | grep clipboard 中 clipboard 选项是否开启
  • 2.ubuntu 中通过下载 vim-gnome 可以开启系统剪贴板 sudo apt-get install vim-gnome
  • 3.复制粘贴通过 "+y  和 "+p 实现 (在一般模式下按 v 进入visual 模式 G 全选后复制)

怎样在 vim 的命令行中拷贝,粘贴?

在 vim 的普通模式下,输入':'进入命令行模式,我们可以在屏幕下方输入我们想让vim执行的命令。有时候,我们需要在命令行中执行拷贝粘贴,

例如:我们想要查找替换正文中的特殊字符,但我们又不知道怎么在命令行中输入这个特殊字符。查找还好说,不一定非要在命令行中输入这个特殊字符,只要把光标放在这个特殊字符上,按'*'向下查找,按'#'向上查找。但是如果我们要替换这个特殊字符,就必须在命令行中输入它了,但是又不知道怎么输入这个特殊字符,怎么办?
答案是拷贝粘贴,先在正文中复制这个字符,然后粘贴在命令行中。

可是怎么在命令行中实现粘贴呢?别急,介绍一个好东西:命令行窗口。在正常模式下,输入'q:',就打开了命令行窗口。命令行窗口中都是我们输入过的命令,在这个窗口中我们可以像编辑正文一样编辑新的命令,或修改旧的命令。因为像编辑普通缓冲区一样,自然可以拷贝粘贴了。编辑完之后,在想要执行的命令上按回车,就ok了。命令执行后,命令行窗口也自动关闭了。

常用快捷键

进入vi的命令
    vi filename :          打开或新建文件,并将光标置于第一行首
    vi +n filename :      打开文件,并将光标置于第n行首
    vi + f
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值