-
2012-12-18 13:12:00命令行模式 (command mode/一般模式)
任何时候,不管用户处于何种模式,只要按一下键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
文本输入模式 (input mode/编辑模式)
在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。
末行模式 (last line mode/指令列命令模式)
末行模式也称ex转义模式。
Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。更多相关内容 -
面试官:vim中如何跳到文件的开头,第n行,最后一行?
2019-02-18 00:10:49vim打开文件的几种方式 命令 作用 vim +n filename 打开文件,并定位到第n行 vim + filename 打开文件,并定位到最后一行 vim +/pattern filename 打开文件,定位至第一次被pattern匹配到的行的行首 ...vim打开文件的几种方式
命令 作用 vim +n filename 打开文件,并定位到第n行 vim + filename 打开文件,并定位到最后一行 vim +/pattern filename 打开文件,定位至第一次被pattern匹配到的行的行首 按行或pattern,可以快速打开到配置文件错误的地方,或者日志中报错的地方。
如从监控系统,或者邮件收到报错信息时,直接根据时间定位到相应的日志位置
vim +/"2019-02-17 23:01:49.994" server.log
vim的三种模式
命令模式(command mode)
命令模式是Vim的默认操作模式,当使用vim命令打开一个文件时,默认进入的就是命令模式。不管用户处于何种模式,只要按下Esc键就可使进入命令行模式
编辑模式(input mode)
只有在vim编辑模式下,才能将键盘键入的内容输入到当前打开的文件中
尾行模式(last line mode)
尾行模式主要用于保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号(set nu)、寻找字符串(/target)等
在命令模式下,用户按冒号键(:)即可进入末行模式下,此时Vi会在显示窗口的最后一行显示一个”:“作为末行模式的提示符,等待用户输入命令
三种模式的切换如下图
命令模式下命令
光标移动命令
上 下 左 右
用键盘上的方向键也可,看个人习惯,这种方式比较省时间
命令 作用 h ← j ↓ k ↑ l → 行级移动
命令 作用 0 移动光标到当前行行首 $ 移动光标到当前行行尾 ^ 移动光标到当前行的第一个非空字符 nG或者ngg 移动光标到当前文件的第n行 :n 移动光标到当前文件的第n行 (同上) 文件首尾移动
命令 作用 gg 或 :0 移动光标到当前文件的第一行 G或 : $ 移动光标到当前未经的最后一行 :和$中间没空格,markdown显示有问题,所以加了空格
翻页
命令 作用 Ctrl + b 向前滚动一页 Ctrl + f 向后滚动一页 Ctrl + u 向前滚动半页 Ctrl + d 向后滚动半页 文本编辑命令
插入
在命令模式下按以下按键可进入编辑模式,执行插入操作,具体包括:
命令 作用 a 在当前光标所在字符的后面开始插入 A 在当前光标所在行的行尾开始插入 i 在当前光标所在字符的前面 开始插入 I 在当前光标所在行的行首开始插入 o 从光标当前所在行的下一行处开始插入 O 从光标当前所在行的上一行处开始插入 s 删除当前光标所在的字符开始插入 S 删除当前光标所在的行 开始插入 删除
命令 作用 x 删除当前光标所在的字符 X 删除当前光标所在字符的前一个字符 dd 删除/剪切光标所在的行 复制 粘贴
命令 作用 yw 复制从光标所在位置到当前【单词结束】部分的内容 yy 复制光标所在【行】的所有字符 (包含换行符) p 将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【后】 P 将最后一个删除或复制操作的文本内容粘贴到光标当前字符之【前】 撤销 反撤销
命令 作用 u 撤销最近的一次操作 <Ctrl> + r 恢复最近的一次操作(取消撤销) 多次执行u 命令可以连续撤销最近的操作
查找命令
基本搜索
在Vim命令模式下,输入 / 或 ? 符号就进入了搜索模式,/ 用于正向往下搜索,? 用于反向往上搜索
命令 作用 n 查找下一个 N 查找上一个 正则表达式搜索
为了更好的进行搜索,Vim支持正则表达式,最基本的正则表达式规则包括:
符号 含义 ^ 表示一行的开头 $ 表示一行的结尾 . 表示任意一个字符 * 匹配0次或n次 如查找行首为test的行,命令模式下输入如下即可
/^test
跳转到第n行
:n
尾行模式下命令
命令 作用 :w 保存文本 :q 退出vim,没有修改过文件 :w! 强制保存,在root用户下,文件只读也可保存 :q! 强制退出,所有改动不生效 :wq 保存并退出 :x 保存并退出 ZZ 等同于:wq :set nu 显示行号 :set nonu 不显示行号 :set readonly 设置只读 参考
从Vim小白到Vim superstar
[1]https://blog.csdn.net/xlinsist/article/details/54143380
vim入坑指南
[2]https://juejin.im/post/5ab1275d5188255588053e70
思否大佬
[3]https://segmentfault.com/a/1190000002445024
[4]https://segmentfault.com/a/1190000002447171
vim系列教程Vim文本编辑命令汇总
[5]https://vim.ink/vim-edit-command.html
Vim光标移动命令汇总
[6]https://vim.ink/vim-cursor.html
Vim搜索命令使用方法和技巧
[7]https://vim.ink/vim-search.html -
VIM 自定义TabLine禁签
2020-06-29 23:04:08vim的标签页的切换可以用[n]gt命令来实现,n是第几个标签,但有时需要数一下才知是第几个,有点麻烦,看了一下vim的帮助,可以自定义标签,加个序号进去。并改了一下样式(在颜色方案里改TabLine TabLineFill ...环境:macOS1015.3
vim 的标签页的切换可以用[n]gt命令来实现,n是第几个标签,但有时需要数一下才知是第几个,有点麻烦,看了一下vim的帮助,可以自定义标签,加个序号进去。 并改了一下样式(在颜色方案里改TabLine TabLineFill TabLineSel颜色),加点装饰,先看效果:
修改方式:
在.vimrc里添加下面 vimscript
" 自定定义tabpage的label (参考:help tabpage) set tabline=%!MyTabLine() function MyTabLine() let s = '' for i in range(tabpagenr('$')) " select the highlighting if i + 1 == tabpagenr() let s .= '%#TabLineSel#' else let s .= '%#TabLine#' endif " set the tab page number (for mouse clicks) let s .= '%' . (i + 1) . 'T' " the label is made by MyTabLabel() let s .= '%{MyTabLabel(' . (i + 1) . ')}' endfor " after the last tab fill with TabLineFill and reset tab page nr let s .= '%#TabLineFill#%T' " right-align the label to close the current tab page if tabpagenr('$') > 1 let s .= '%=%#TabLine#%999XX' endif return s endfunction function MyTabLabel(n) let buflist = tabpagebuflist(a:n) let winnr = tabpagewinnr(a:n) " Add '+' if one of the buffers in the tab page is modified let label = '' for bufnr in buflist if getbufvar(bufnr, "&modified") let label = '+' break endif endfor "添加tabpage序号,方便ngt切换 let bg=['☰','☱','☲','☳','☴','☵','☶','☷'][(a:n-1)%8] return ' 🐶['.a:n.label.']'.pathshorten(bufname(buflist[winnr - 1])).' ' endfunction
-
Linux初级篇——vi和vim的区别
2021-01-09 10:06:15命令行模式 (command mode/一般模式)文本输入模式 (input mode/编辑模式)末行模式 (last line mode/指令列命令模式)打开文件、保存、关闭文件(vi命令模式下使用)插入文本或行(vi命令模式下使用,执行下面命令... -
一张图记住 Vim 常用命令
2021-01-09 13:11:12本来不算写 Vim 使用教程的,因为我想网上应该会有很多,然后我去搜了一下看到别人写的好丑好乱啊,于是... 跳至指定行4、Last line mode下命令简介A) 列出行号B) 跳到文件中的某一行C) 查找字符D) 保存文件E) 离开 Vim -
vim常用指令.7z
2020-07-22 15:07:54基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是: 命令模式: 用户刚刚启动 vi/vim,便进入了命令模式。 此... -
【Linux】vim、gcc、Makefile
2021-01-09 11:11:51主要叙述vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 正常/普通/命令模式(Normal mode) ... -
JuliaFormatter.vim:(n)vim插件,用于使用JuliaFormatter.jl格式化Julia代码
2021-05-05 20:01:10JuliaFormatter.vim 使用在(n)vim中格式化Julia代码的插件。 安装 使用任何插件管理器: Plug ' kdheepak/JuliaFormatter.vim ' ..." format from line 5 to line 15 inclusive : 5 , 15 JuliaFormatterFormat -
Vim复制,剪切和粘贴命令和操作
2020-10-08 09:41:57Vim provides different shortcuts for copy, cut and paste operations. These commands are one of the most used and problematic commands because of vim command or shortcut based work style. Vim为复制,...Vim provides different shortcuts for copy, cut and paste operations. These commands are one of the most used and problematic commands because of vim command or shortcut based work style.
Vim为复制,剪切和粘贴操作提供了不同的快捷方式。 由于vim命令或基于快捷方式的工作风格,这些命令是最常用和问题最多的命令之一。
复制当前行 (Copy Current Line)
We can copy current line with the
yy
command which is named yank. But the cursor should be located in the line we want to copy.我们可以使用名为yank的
yy
命令复制当前行。 但是光标应位于我们要复制的行中。yy
复制行 (Copy Lines)
We will again use
yy
command in order to copy multiple lines. But in this situation we should specify the range or line counts. We will provide the line count we want to copy betweeny
‘s . In this example we will copy 5 lines from current cursor.我们将再次使用
yy
命令以复制多行。 但是在这种情况下,我们应该指定范围或行数。 我们将提供要在y
之间复制的行数。 在此示例中,我们将从当前光标复制5行。y5y
复制字词 (Copy Word)
We can copy the next word where cursor locates with
yw
command. Words are separated with spaces.我们可以使用
yw
命令将下一个单词复制到光标所在的位置。 单词用空格分隔。yw
切断电流线 (Cut Current Line)
We can use
dd
command in order to cut current line.dd
command is actually used to delete line but after delete operation the deleted line will be put into the buffer where we can use and put the line withyy
command.我们可以使用
dd
命令来剪切当前行。dd
命令实际上是用于删除行的,但是在删除操作之后,已删除的行将被放入缓冲区中,我们可以使用该缓冲区并将其与yy
命令一起放入。dd
剪切多行 (Cut Multiple Lines)
We can cut multiple lines with
dd
command. In this example we will cut 10 lines by putting 10 betweend
commands. Cut start location is the cursor location.我们可以使用
dd
命令剪切多行。 在此示例中,我们将在d
命令之间放置10行,以剪切10行。 剪切开始位置是光标位置。d10d
切字 (Cut Word)
We can cut word which is next one with
dw
command.我们可以用
dw
命令剪切下一个单词。dw
糊 (Paste)
Cut and copy operations will put the content to the buffer. This buffer will be used to paste text. We will use
p
shortcut in order to paste last item in the buffer like below.剪切和复制操作会将内容放入缓冲区。 此缓冲区将用于粘贴文本。 我们将使用
p
快捷方式来将最后一项粘贴到缓冲区中,如下所示。p
了解更多如何在Windows中下载,安装和使用Vim翻译自: https://www.poftut.com/vim-copy-cut-paste-commands-operations/
-
Vim 配置
2021-06-14 05:48:451、编辑vim ~/.vimrcvim ~/.vimrc" Use Vim settings, rather then Vi settings. This setting must be as early as" possible, as it has side effects.set nocompatible" Highlight current lineset cursorline ... -
vim详解
2021-09-06 10:55:431.编辑器简介 vi编辑器是所有Unix及Linux系统下标准的编辑器,相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。是使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本...vim . -
程序员必备vim编辑器命令,你想要的我都整理好了(建议收藏)
2021-05-31 09:11:10小伙伴看到我各种vim的快捷指令使用,有点惊讶了:“卧槽,你怎么做到记得这么清楚的?这谁能记得住?教教我呗?”。 其实很简单:多写多用多练,例如:之前的一个同事,写代码只用vim编辑模式,我就是从这来学来的... -
终端文本编辑神器--Vim命令详解。如何配置使用Vim、Vim插件?
2021-08-25 09:58:44作者:Mintimate ... Mintimate’s Blog,只为与你分享 [外链图片转存失败,源站可能有防盗...Vim是一款跨平台的文本编辑器,不但可以运行在Unix,还可以运行在GNU、Windows平台,并且还支持丰富的插件,助力开发和使用。 -
vim常用操作
2022-03-04 18:53:13vim filename :如果已有文件,则打开;没有该文件,则创建并打开一个文件filename。 Ctrl+q :当vim卡住时,可以取消正在执行的命令 2.一般命令模式、编辑模式、命令行模式 &进入vim后,按下i 键,则进入编辑... -
linux vim
2021-05-17 09:17:591、vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)插入模式(Insert mode)底行模式(last line mode)1) 命令行模式command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入... -
mac vim没有颜色 vim着色
2021-12-15 22:52:10mac选手使用vim的时候发现,代码全是白色的!我的天,我用的是vi吗? 但是编辑/usr/share/vim/vimrc中会发现系统不让用户改因为没有权限,这样可以直接在当前用户下实现同样的功能。步骤如下: 新建vimrc文件 vim ~/... -
vim 编辑的基本操作
2020-06-18 10:09:38在设置环境变量的时候,恰巧进入 vim 编辑中,可是始终无法修改 vi ~/ 打开的文件,遂上网查vim 的相关操作,看完基本就会操作了。 转载自:https://www.cnblogs.com/php-71/p/6733500.html vi编辑器是所有Unix及... -
分享我的vim配置文件
2022-04-21 11:48:32配置vim -
linux vim的使用方法
2021-05-17 10:05:25linux vim的使用方法vi的基本概念基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下:1. Comand mode:控制屏幕光标的移动,... -
Vim基本使用方法
2021-05-16 10:05:38为什么要学习Vim,Vim和Vi的区别,Vim的基本使用方法(部分)为什么很多大型网站都采用Linux作为服务器?1. 为什么要学习Vim,是为了装B吗?在Windows操作系统横行的今天,为什么要学习使用Vim这样需要各种快捷键的... -
vscode-vim常用快捷键
2021-12-22 13:48:19vscode vim 插件快捷键速览 -
Ubuntu-vim 命令
2021-11-09 16:32:09底线命令模式(Last line mode) 先通过一个简单的关系图 来看一下这三个模式 的工作关系 命令模式(Command mode) 当 用户输入 vi/vim a.txt,便进入了命令模式 此状态下敲击键盘动作会被Vim识别为命令,而非... -
ubuntu vim配置(参考)
2021-08-30 13:59:05安装好ubuntu虚拟机后,一般都会安装vim,但是原生的vim编辑器一般都不太好用。 结合网上的一些参考配置,就写了一份自己的配置,特此用此博客记录下,需要的自取即可。 执行如下指令: vim /etc/vim/vimrc 将下列... -
Linux系统 | vim配置
2021-08-27 20:59:43Linux系统 | vim配置 fly@fly-vm:~$ cat /etc/vim/vimrc " All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by " the call to :runtime you can find below. If you wish to change any ... -
vim操作命令
2022-01-18 16:46:101. 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 2. 按一下「:」冒号键进入「Last line mode」 3. 按「i」切换进入插入模式「insert mode」,按“i”进入... -
vim命令
2021-01-16 07:07:24vi/vim 分为三种模式,命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。使用 vi/vim 可以快速编辑文件而无需使用类似文本编辑器软件,特别是在生产环境 Linux 服务器上进行操作。... -
Linux—vim编辑器的使用
2022-03-01 10:02:54Linux—vim编辑器的使用...入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1、正常/普通/命令模式(Normal mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mo -
vim报错E37: No write since last change E162: No write since last change for buffer “xxx
2022-04-07 19:27:40vim报错: E37: No write since last change E162: No write since last change for buffer "camera.c -
一个简单的vim配置文件
2022-04-25 15:33:00以下展示一个简单的vim配置文件, 请保存到用户宿主目录下的~/.vimrc set nu "" the general indentation setting set tabstop=4 set shiftwidth=4 set softtabstop=4 " set expandtab set noautoindent "" match ...