vi编辑器常用操作,vi编辑器列操作

  vi编辑器常用操作,vi编辑器列操作

  Vim编辑器是一个高度可定制的编辑器。它将为我们提供相当多的选择。在这一节中,我们将讨论如何使用这些选项定制编辑器的外观和行为。

  Vim editor有许多方法来设置选项。一般来说,要设置一个选项,我们可以使用以下命令:

  :设置选项=值

  这种设置方法在大多数情况下都很有效。真值选项的设置可通过以下命令完成:

  :设置选项

  要重置,我们可以使用以下命令:

  :设置按钮

  如果我们想检查一个选项的值,我们可以使用这样的命令:

  :设置选项?

  如果我们想将一个选项设置为其默认值,可以使用以下命令:

  :设置选项

  布尔选项:

  我们可以对布尔选项执行以下操作:

  :设置选项打开选项

  :设置nooption关闭选项

  :设置选项!转换选项

  :设置发票选项转换选项

  :set option将选项设置为默认值。

  例如:

  :设置列表

  :设置列表?

  目录

  :设置nolist

  :设置列表?

  诺利斯特

  :设置列表!

  :设置列表?

  目录

  :设置列表

  :设置列表?

  诺利斯特

  数字选项:

  我们可以对数字选项执行以下一些操作:

  :set option=value为选项添加一个值。

  :set option -=value从选项中减去一个值。

  :设置选项^=值将该值乘以选项。

  :set option将选项设置为默认值。

  例如:

  :设置shiftwidth=4

  :设置shiftwidth=2

  :设置shiftwidth?

  shiftwidth=6

  :设置shiftwidth-=3

  :设置shiftwidth

  shiftwidth=3

  :设置^=2的移动宽度

  :设置shiftwidth

  shiftwidth=6

  :设置shiftwidth

  :设置shiftwidth

  shiftwidth=8

  与字符串相关的命令:

  我们可以对字符串选项执行以下操作:

  :set option=value将值添加到选项的末尾

  :set option -=value从选项中删除值或字符。

  :设置选项^=值在选项开头添加值。

  例如:

  :设置cinwords=test

  :设置cinwords?

  cinwords=测试

  :设置cinwords=end

  :设置cinwords?

  cinwords=测试,结束

  :设置CIN words-=测试

  :设置cinwords?

  cinwords=end

  :设置cinwords^=start

  :设置cinwords?

  cinwords=开始,结束

  以下命令将设置一个布尔选项(如list或nolist),但它将显示其他类型选项的值:set option

  但是,用这样的命令显示选项的值并不是一个好方法,因为如果我们不小心使用这种方法,就会导致错误。更好的方法是使用以下命令显示选项的值:

  :设置选项?

  相对于以下命令形式:

  :设置选项=值

  查看其值的方法是:

  :设置选项:值

  其他:设置参数:

  以下命令打印出与默认值不同的所有选项:

  :设置

  以下命令打印出所有选项:

  :设置全部

  以下命令打印出终端控制代码:

  :设置termcap

  最后,如果我们想将所有选项重置为默认值,我们可以使用以下命令:

  :设置全部

  我们可以把几个放在一行:集合运算。例如,要设置三个不同的选项,我们可以使用以下命令:

  :设置列表shiftwidth=4 incsearch

  自动设置文件中的选项:

  我们可以将Vim设置放在我们的文件中。当我们启动Vim编辑一个文件时,他将读取该文件的前几个位置,并查找以下格式的行:

  vim:设置选项-命令选项-命令选项-命令.

  这样一条线被称为模型线。

  例如,在程序中,模式行如下:

  /* vim:set shift width=4 auto indent:*/

  相对格式如下:

  Vim:选项命令:选项命令:

  选项modeline可以打开或关闭此行为。选项modeline可以控制Vim在查找设置命令时读取前几行。

  例如,如果我们设置以下选项,Vim不会寻找模式线:

  :设置诺模线

  如果我们设置以下选项,Vim将在每个文件的开头或结尾查找modeline选项指定的行数:

  :设置模型线

  例如,也许我们都会在Vim的帮助文件末尾看到下面几行:

  vim:tw=79:ts=8:sw=8:

  在此设置中,tw(textwidth)选项设置为78,78,ts(tabstop)选项设置为8,8,sw(shiftwidth)选项设置为8。这个设置使我们的帮助文件看起来更好。通过使用模式行,帮助文件的制造商将确保这些文本可以被正确格式化,而不管我们在其他文件中使用的本地设置。vimrc文件:

  如果我们想对每个目录进行不同的设置,一种方法是将。Vimrc或者。每个目录中的gvimrc文件。然而,这还不够,因为默认的vim会忽略这些文件。

  为了让Vim读取这些文件,我们必须执行以下命令:

  :设置exrc

  但是,这种设置存在安全问题。毕竟,一些不成功的命令很容易被添加到这些文件中,即使我们正在其他目录中编辑,这个设置也会影响我们。

  为了避免安全问题,我们可以使用以下命令来设置安全选项:

  :设置安全

  此选项将阻止在当前目录的初始文件中执行:autocommand,write,shell命令。

  自定义键盘的使用:

  大多数运行在Windows平台上的程序都会使用Alt键来选择菜单内容。然后Vim希望使用所有的键来完成我们的命令。winaltkeys选项可以控制Alt键的使用。

  例如,如果我们执行下面的命令,所有的Alt键都可以作为我们命令的一部分,通过:map命令:

  :设置winaltkeys=否

  执行Alt-F不会选择文件菜单,而是执行映射的Alt-F命令。这可以映射如下:

  :映射M-f:写入

  这里需要知道的是,Alt在Vim中会被称为M-Meta。

  如果我们执行以下命令,所有Alt键盘将选择菜单内容,而不是执行映射命令:

  :设置winaltkeys=是

  第三个选项是“是”和“否”的组合:

  :设置winaltkeys=menu

  在此模式下,Alt键可用于选择菜单或地图命令。所以Alt-F可以选择文件菜单,我们可以用Alt-X映射命令.

  当我们使用带有字符界面的Vim时,我们可以有两个选项来控制如何在键盘上读取。以下选项将告诉Vim通过控制台直接读取:

  :设置conskey

  如果我们希望Vim编辑器从标准输入中读取脚本文件,不要使用这个选项。

  以下选项告诉Vim使用BIOS来读取键盘:

  :设置bioskey

  在这里,我们还想指出,如果我们想使用重定向脚本,我们不应该设置这个选项。通过指定Vim使用BIOS,我们将获得更快的CTRL-C响应和中断。

  自定义键盘映射:

  的大多数Unix功能键会发出以Esc开头的字符串。但是有一个问题,就是Esc键是用来结束插入模式的。那么我们如何在插入模式下处理功能键呢?

  Vim的解决方法之一是按Esc后等待一段时间,看看是否会有其他字符输入。如果是,Vim将知道功能键已被按下,并将执行相应的操作。要打开此功能,我们可以执行以下命令:

  :设置esckeys

  但是如何处理其他键的顺序呢?我们可以通过以下两个选项来控制该区域:

  :设置超时

  :设置ttimeout

  这些设置的作用如下:

  超时超时结果

  not time out not time out没有超时。

  超时不适用所有代码键(F1.)和:map宏超时。

  Notimeout ttimeout只有代码键超时。

  选项timeoutlen确定在按Esc键以确定是否有任何输入后要等待多长时间。默认值为1秒:

  :设置timeoutlen=1000

  通常,timeoutlen选项控制功能键和键盘映射的等待时间。如果我们想要不同的键盘映射时间,我们可以使用ttimeout选项:

  :设置ttimeout=500

  这两个选项是告诉Vim在按下Esc后等待1/2秒,以决定我们是否将输入功能键,或者等待1秒,以决定是否有其他键盘映射输入。

  确认:

  一般情况下,我们会遇到一些Vim认为有问题的事情,比如从修改过的缓冲区退出,命令失败。如果我们设置了确认选项,Vim将在类似的情况下显示一个确认对话框:

  :设置确认

  这样,当我们试图在修改后的缓冲区中执行quit命令时,会显示一个对话框供我们确认。

  自定义消息:

  Vim通常使用屏幕的下部来显示消息。有时这样的消息会超过一行,我们会得到一个类似于按Enter键继续的提示。为了避免这样的提示,我们可以通过设置cmdheight选项来增加消息的行数。例如,我们可以使用以下命令将消息空间设置为3:

  :设置cmdheight=3

  显示状态:

  当我们设置showmode选项时,Vim编辑器将在屏幕底部显示我们的当前状态。要将其设置为这种模式,我们可以使用以下命令:

  :设置显示模式

  显示一些命令:

  如果我们设置了showcmd选项,当我们输入命令时,一些命令将显示在屏幕的下部。例如,我们执行以下命令:

  :设置showcmd

  现在我们输入fx命令来寻找x,当我们输入F时,F会显示在底部。

  这对我们输入复杂的数据特别有用,即使显示出来。

  通常,当我们执行:shell命令时,Vim会警告我们文件已经被修改。如果我们想关闭这个选项,我们可以执行下面的命令:

  :设置nowarn

  当Vim捕捉到一个错误时,它只是显示一条错误消息。如果我们想打开声音警告,我们可以执行以下命令:

  :设置错误铃声

  但是有时候这种设定会影响到我们其他同事。在这种情况下,我们可以设置visualbell选项。这样,当我们输入错误时,屏幕会闪烁,然后返回正常状态。要设置此选项,我们可以执行以下命令:

  :设置visualbell

  我们还可以自定义状态行。我们可以使用以下选项来定义我们的状态行:

  :设置状态行=格式

  %用于表示特殊区域。例如,%f告诉Vim在状态行中包含文件名。例如,以下命令:

  :set status line=The/file/is// % f/

  这时,国家行为:

  该文件为“sample.txt”

  我们可以指定内容的最大和最小宽度。例如,下面的命令告诉Vim editor文件应该至少有8个字符,最多19个字符。这些内容是右对齐的,如果我们希望它们是左对齐的,我们可以在%后面加上-来显示。如果需要,我们可以在%后面加一个0。例如,如果我们想显示列数,并且需要从0开始,我们可以使用下面的命令:

  :设置statusline=.10c

  格式、类型和描述如下:

  % (.%)定义一个项目组。如果该组中的所有内容都为空,则不会显示整组的内容。

  %{n}*

  %对其余行使用突出显示组Usern,直到您看到另一个%n*。格式%0*将使这些行正常突出显示。如果突出显示组User1带有下划线(:set statusline=File:/%1*%f%0),则状态行中显示的文件名将带有下划线。

  %定义状态行过长时的换行位置。

  %=

  定义一行中间的某个地方。所有左手弦都放在线的左边,而右手弦放在线的右边。

  %字符%

  光标下字符的%B十六进制形式

  完整路径的%F文件名

  如果是帮助缓冲区,则为%H HLP

  %L缓冲区中的行数。

  %M如果缓冲区已被修改,它将显示为

  %O以十六进制显示文件中的字符偏移量。

  文件中光标前的%P%

  %R RO如果缓冲区是只读的。

  %V列数。如果与%c相同,则为空字符串。

  如果窗口是预览窗口,则为%W PRV

  %Y文件类型

  A% (string)如果我们正在编辑多行文本,则该字行字符串为({current} of)

  {arguments})”。比如:(18个中的5个)。如果命令行中只有一行,则该字符串为空。

  %b (number)光标下字符的十进制表示。

  %c(数字)列号

  %f (string)命令行上指定的文件名。

  %h(已标记)如果是帮助,则缓冲区为[帮助]

  %l(数字)行号

  %m(标记)如果缓冲区已被修改,则意味着

  %n(数字)缓冲区代码

  %o (number)光标前的字符数,包括光标下的字符。

  %p(数字)文件中该行的百分比

  %r (tag)如果缓冲区是只读的,则表示为RO。

  %t(字符串)文件名(无路径)

  %v(数字)虚列数

  如果是预览窗口,则%w(已标记)显示为预览。

  %y(标记)我们输入的文件类型。

  %{expr%}表达式的结果

  标签的内容将被特殊对待。多行标签,如RO和PRV,将自动用逗号分隔。例如,和帮助将由空格分隔。例如:

  :设置状态行=%h%m%r

  如果我们不喜欢默认的状态行,我们可以打开标尺选项:

  :设置标尺

  这可以使Vim显示类似于下面的状态行:

  help.txt [help][RO] 1,1顶

  在文件名和标签之后,将显示当前列号、虚拟列号和我们在文件中的位置。

  如果我们想定义自己的标尺格式,我们可以使用下面的命令:

  :设置rulerformat=string

  这里的字符串是我们在statusline选项中使用的。

  当我们删除或修改一些文本行时,如果这些行超过了报告中指定的行数,Vim编辑器会告诉我们这一点。因此,如果我们希望Vim报告所有的更改,我们可以使用下面的命令:

  :设置报告=0

  相反,如果我们不想让Vim告诉我们这些变化,我们可以将这个值设置为一个相当大的值。

  我们可以使用以下命令设置帮助窗口的最小大小:

  :set helpheight={height}

  我们在此设置的值将在打开帮助窗口时使用。

  我们还可以使用以下命令设置预览窗口的大小:

  :set previewheight={height}

  通常,list命令使用I表示制表符,使用$表示行尾。我们也可以定制这个形状。我们可以使用listchars选项来定义列表模式的工作方式。该命令的格式如下:

  :set listchars=key:string,key:string

  key:string的值可以按如下方式使用:

  Eol:{char}定义位于行尾的字符。

  tab:{ char1 } { char2 } tab值是char 1和char 2的组合。

  Trail:{char}用于表示尾随空格的字符。

  扩展:{char}用于指示一行结束和下一行连接的字符。

  我们可以使用高亮选项来改变许多对象的高亮显示。该选项的格式如下:

  :set highlight=key:group,[key:group].

  我们可以使用以下关键值:

  关键默认含义

  8特殊键用于高亮显示:map命令列出的特殊键。

  当~和@用于表示不在缓冲区中的内容时,可以使用@ NonText Vim。

  Modemsg在屏幕底部显示模式信息。

  statusline NC中除当前窗口以外的每个窗口的状态行。

  在visual nos可视化模式下选择的文本。

  W WildMenu显示为通配符的一部分。

  当我们按Ctrl-D时显示的目录。

  错误消息错误消息。

  I IncSearch显示为增量搜索的一部分。

  I搜索显示为搜索的一部分。

  m更多消息-更多提示

  Linenr命令打印的行号:number

  r质疑按回车键的提示等问题。

  当前窗口的状态行

  标题输入信息的命令标题。

  v在可视模式下可视选择的文本

  警告消息。

  我们也可以使用缩写字符:

  倒档

  I斜体

  粗体

  非常突出

  u下划线

  没有

  -没有

  因此,我们可以通过以下命令使用ErrorMsg组来突出显示错误消息:

  :set highlight=e:ErrorMsg

  或者我们可以使用下面的命令以反向、粗体、斜体的方式显示错误:

  :设置高亮显示=ervb

  如果我们设置了更多选项,当一个命令的显示将超过一个屏幕时,将显示更多提示。如果没有设置,屏幕将只滚动。默认值如下:

  :设置更多

  以下命令定义了Ctrl-A与Ctrl-X可以识别得数字格式.

  :设置nrformats=八进制,十六进制

  (注:小数总是可以识别的)

  如果我们设置以下选项,Vim将尝试重新加载终端屏幕的内容。

  :设置恢复屏幕

  换句话说,在我们运行这个程序之后,他会试着让屏幕看起来和他运行之前一样。

  Xterm可以让我们在按下鼠标左键拉动时选择文本。该文本可以粘贴到其他窗口中。然后一些由于兼容性的问题会让我们在粘贴文字的时候出现问题。为了避免这样的问题,我们可以使用下面的命令来设置粘贴模式:

  :设置粘贴

  但是,有时候我们希望是粘贴模式,有时候不是。pastetoggle选项可以让我们定义一个键在这两种模式之间切换。例如,如果我们使用F12键进行切换,我们可以使用下面的命令:

  :设置pastetoggle=F12

  关闭粘贴模式后,所有选项都将恢复到以前的值。

  当我们在ex模式下输入命令时,可以实现文件名的自动补全。例如,如果我们想读入文件input.txt,我们可以输入以下命令:

  :读取输入标签

  Vim会尝试猜测我们想要的文件。如果我们的当前目录中只有文件input.txt,它将显示如下形式:

  :读取input.txt

  如果当前目录中有多个输入文件名,将显示第一个。如果我们再按Tab,会显示第二个匹配结果,然后显示第三个。

  我们可以通过以下命令定义密钥来完成通配符:

  :设置wildchar=character

  如果我们在宏中使用文件名,我们需要设置wildcharm。这是我们在宏中完成文件名自动补全的字符。例如,以下命令:

  :设置wildcharm=F12

  :映射F11:读入F12

  这样,当我们按F11时,我们将读入文件命令。

  也许我们不想匹配备份文件或其他类似的文件。我们可以使用下面的命令告诉Vim哪些文件是这样的:

  :设置wildignore=pattern,pattern

  这样,匹配指定类型的文件将被忽略。例如,如果我们想忽略目录文件和备份文件,我们可以使用以下命令:

  :设置wildignore=*。o,*。备份文件

  后缀选项将列出文件名的一系列前缀,当遇到这样的前缀时,它们将获得较低的优先级。换句话说,如果一个文件名有这样的前缀,匹配时就会显示一个。

  通常,文件名的完成代码不会显示匹配列表。如果我们设置以下选项:

  :设置通配符菜单

  当我们试图完成一个文件名,一个可能的文件菜单将显示在窗口的状态行。

  我们可以通过箭头键来完成选择。在一行的末尾,右边有更多的选择。按下键使编辑器进入一个目录。按向上键返回到父目录,然后按Enter键选择项目。

  我们可以通过使用wildmode选项自定义文件完成功能的行为。以下命令使Vim只完成第一次匹配:

  :设置wildmode=

  如果我们一直按wildchar键,只会显示第一个匹配的结果。

  以下命令将使用他能找到的第一个文件来完成文件名:

  :设置wildmode=full

  以后如果一直按wildchar键,其他匹配的文件会依次显示。

  以下命令匹配最长的子字符串:

  :设置wildmode=longest

  当我们执行以下命令时,我们将完成相同的功能,但只显示位于wildmenu中的那些文件:

  :设置wildmode=longest:full

  以下命令显示可能文件的列表:

  :set wildmode=list

  这种模式不会匹配完成。如果我们想要这种情况,我们可以使用以下选项:

  :set wildmode=list:full

  最后,为了完成最长的子串并列出文件,我们可以使用以下选项:

  :set wildmode=list:longest

  当我们设置startofline选项时,屏幕移动命令与一些光标移动命令相同,如H,M,L与g .

  如果我们设置write选项,我们可以让Vim保存文件。如果我们不设置这个选项,我们只能查看文件。如果我们想让Vim成为一个安全的查看器,这个设置非常有用。

  一般来说,当我们试图保存一个不应该保存的文件时,Vim会提示我们使用覆盖选项(!).我们可以告诉Vim总是认为输入了这个选项:

  :设置writeany

  但是这个设置并不是一个好的选择,因为它会覆盖我们现有的文件。

  如果我们想为一个缓冲区设置最大内存,我们可以使用下面的命令:

  :set maxmem={size}

  这里这个大小以千字节为单位。

  要为所有缓冲区定义内存容量,我们可以使用以下命令:

  :set maxmemtot={size}

  maxfuncdepth选项可以定义嵌套函数的最大数量。同样,maxmapdepth参数可以定义嵌套映射的最大数量。

  下面我们来谈谈一些终端选项:

  我们使用的终端名存储在$ term选项中。一般情况下,我们不需要设置这个选项,因为它是由我们使用的Shell和操作环境定义的。也许有时我们需要读入它来允许特定的终端宏。

  对于慢速终端,我们可以使用lazyredraw选项。他可以阻止Vim在宏的中间重绘屏幕。默认设置如下:

  :设置nolazyredraw

  这个选项已经由当前的终端技术实现。如果我们设置了这个选项,我们将看不到正在执行的宏。

  在UNIX系统中,有一个名为termcap的终端控制代码数据库。Vim编辑器也有它的基本数据库。如果我们打开ttybuiltin选项,我们将首先搜索这个内部数据库。

  如果我们设置ttyfast选项,Vim将认为我们有一个更快的终端连接,并将更改输出以产生相对平滑的更新,但这个有更多的功能。如果我们有一个缓慢的连接,我们将重置此选项。

  Ttymouse选项控制终端鼠标代码。当试图用终端控制代码做一些有趣的事情时,这个选项非常有趣。例如,如果我们想在受控输入模式下使用鼠标左键和鼠标右键,我们应该允许这些选项。

  ttyscroll选项可以控制当屏幕需要更新时滚动多少行。如果我们在一个慢速终端上,我们可以将这个选项设置为一个较小的值。

  在下一节中,我们将讨论一些在Vim中很少使用的选项。这些选项可以与Vi保持兼容,并支持一些以前的设备。

  以下选项可以使用Vim尽可能像Vi一样运行:

  :设置兼容

  同样,下面的命令可以使我们与Vi的兼容性保持一致:

  :set cpoptions={characters}

  下面的命令可以使:substitute命令中的g和c选项的用法类似于UNIX Editor ed:

  :设置edcompatible

  以下选项可以设置lisp模式。这个选项可以设置许多选项,使Lisp编辑更容易。

  :设置lisp

  选项tildeop可以使~类似于一个操作符。这个和Vi兼容。如果关闭此选项,则~命令将选择单字符大小写。使用以下命令,~命令的格式是~motion:

  :设置平铺显示

  helpfile选项可以定义主帮助文件的位置。如果我们要重置:help命令从哪里获取信息?例如:

  :set helpfile=/usr/SDO/vim/my _ help . txt

  以下命令可以提供向后兼容性:

  :设置古怪反转

  以下命令将导致每个字符的输出延迟(以毫秒计):

  :set writedelay={time}

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: