打印

关于linux vim命令 总结(二)

[复制链接]
194|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冷冻链|  楼主 | 2018-9-21 15:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
-------------------------其它的---------------------------

:{range}write>>logfile 将当前内容追加到指定文件中

:{range}write 保存,后面加路径为另存为

:{range}write {command} 将当前文件保存到command中表示把当前文件作为被调用命令的参数 如 :write !wc 返回当前文件的字符数

:w :write的缩写

:edit(e) 打开,编辑

ZZ         保存并退出

zz   将光标所在行移至窗口中间

:q   退出

vim -R file 用只读模式打开file unix中view file等效,通过w!可以强制存盘

vim -M file 用只读模式打开file 通过 :set modifiable :set write 可以去除这种保护

vim -r file 用swp文件恢复当前打开文件,恢复一个还没有命名保存的文件时用 vim -r "" ,其中file可以是被恢复的原文件,也可以是用于恢复的交换文件(VIM会根据交换文件自动找到原文件)

vim -r 列出当前可用的所有交换文件,然后选择用哪个恢复

:recover 用交换文件恢复当前文件

:set shortmess 选择关闭信息提示功能

:saveas move.s 将当前文件另存为move.s

:file move.c 将当前文件重命名为move.c

{command}!   强制符

!{motion}{program} 执行外部程序 输入完!{motion}部分后命令会自动跳转到命令行部分,会通过motion部分的内用调用program然后用返回结果覆盖调motion选择的部分 例如:!5Gsort<Enter>

!! 在当前行执行程序 相当于 :.!

:jumps 列出跳转记录

:marks 列出所有标签

:reg 查看寄存器内的内容

<ESC>     取消命令

CTRL-G     显示行数等信息

m 创建标签,用a-z 是局域标签,A-Z是全局标签

v 进入visual模式

V 进入visual模式,以行为对象

CTRL-V 进入visual模式,以矩形为对象

o 在以矩形为单位的visual模式时 光标对角切换

O 在以矩形为单位的visual模式时 光标平角切换

"{a-Z,+,*等} 选择寄存器复制\剪切\粘贴 大写字母表示追加

'" 跳到上次退出此文件时的位置

'. 跳到最后编辑此文件的位置

:TOhtml 把当前文件转化成HTML格式

:source $VIMRUNTIME/syntax/2html.vim  把2html.vim转化成HTML显示在屏幕上

g Ctrl-G 统计字数,可以在visual模式下选择要统计的字符

---------------------------------------------------------------



3.配置与设置

在布尔型参数前加no表示关闭选项

配置项支持-= 和 +=

拷贝默认的配置文件:      :!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc

VIM的默认安装路径:/usr/share/vim

VIM的默认配置文件路径: ~/.vim/

VIM的默认插件文件路径: ~/.vim/plugin/

VIM的默认文件类型配置文件路径: ~/.vim/ftplugin/

VIM的默认文档安装路径: ~/.vim/doc

文件类型配置文件多文件的配置方式:

ftplugin/<filetype>.vim

ftplugin/<filetype>_<name>.vim

ftplugin/<filetype>/<name>.vim



mkdir $VIM/vimfiles/ftplugin/fortran

$VIM/vimfiles/ftplugin/fortran/too.vim



  高亮字体设置的路径:$VIMRUNTIME/syntax

配色方案的路径:$VIMRUNTIME/colors   ~/.vim/colors

生成帮助文件的tags:               :helptags ~/.vim/doc

查看本地添加的所有帮助文件:  :help local-additions

打开配置文件 :edit $MYVIMRC

查看版本和一些文件配置信息        :version

把所有选项摄制成默认              :set all&

查看所有和默认不一样的设置        :set

打开设置窗口  :options

配置命令:

在所有配置项后面添加&表示设置为默认值

:set showmode                       显示当前的模式

:set compatible?                       查看当前是否为兼容模式

:set number                       显示行号

:set ruler                       在屏幕右下角显示光标位置

:set ignorecase                        搜索乎略大小写

        :set hlsearch                       设置搜索结果高亮

:nohlsearch       关闭当前搜索结果的高亮

:set incsearch                       (incomplete)在输入单词的同时显示搜索结果

:set wrapscan                       搜索到文件底部的时候从文件的开头继续搜索反之亦然

:set wrap       是否自动换行

:set whichwrap       设置那些命令可以跨行b是backspace s是Space 具体查看'whichwrap'

:set sidescroll       设置左右自动滚动的触发字符数

:set scrolloff       设置上下自动滚动的触发行数

:set compatible                        是否与vi兼容

:set backspace=indent,eol,start        设置在Insert模式下backspace键可以删除 行前的自动缩进,回行,和进入插入模式时光标之前的字符

:set autoindent                        自动缩进(在Insert中回车或者在正常模式下o)

:set backup       覆盖一个文件时备份它

:set history       设置命令和搜索的历史记录数量

:set showcmd       在右下角显示按键命令

:set list       制表符高亮

:set listchars=tab:>-,trail:-       设置制表符的替换字符串

:set iskeyword       设置关键字的组成字母@表示a-Z

:set cmdheight       设置命令区高度

:map Q gq       设置映射

:map <F5> i{<Esc>ea}<Esc>       映射F5的功能为给一个单词加{}

:set shiftwidth       设置左右移动的距离

:set joinspaces       设置合行后的空格数

:set textwidth       设置文本的宽度

:set updatetime       设置多长时间没有编辑文件就自动存盘,毫秒为单位

:set updatecount       设置输入多少字符后自动存盘

:set directory       设置查看在哪里存储交换文件

:set autowrite       自动存盘,此存盘是在必要时刻自动存储不像word那样隔几分钟存一次



配置文件中的特殊用法:

autocmd 自动执行命令

autocmd FileType text setlocal textwidth=78 设置 文本文件 文本宽度为78

手动设置文件的高亮配置文件:

在文件开头或者结尾写入  # vim: syntax=make

在VIM中执行shell的时候可以配置shell备置列表如下:

'shell' specifies the program that Vim uses to execute external programs.

'shellcmdflag' argument to pass a command to the shell

'shellquote' quote to be used around the command

'shellxquote' quote to be used around the command and redirection

'shelltype' kind of shell (only for the Amiga)

'shellslash' use forward slashes in the command (only for MS-Windows and alikes)

'shellredir' string used to write the command output into a file

4.搜索

搜索支持正则表达式

/ 向后搜索

? 向前所搜

n 下一个匹配项

N 上一个匹配项

* 从上向下搜索单词

# 从下向上搜索单词

搜索单词: /\<the\>  这样指定了单词的开始和结尾

5.常用套路技巧:

套路:

x delete character under the cursor (short for "dl")

X delete character before the cursor (short for "dh")

D delete from cursor to end of line (short for "d$")

dw delete from cursor to next start of word

db delete from cursor to previous start of word

diw delete word under the cursor (excluding white space)

daw delete word under the cursor (including white space)

dG delete until the end of the file

dgg delete until the start of the file

技巧:

'* 是选区寄存器(用鼠标中键)  '+ 是粘贴寄存器(一般是菜单里的复制粘贴选项)

Insert模式和Replace模式可以用Insert键切换

将Doe,John 替换成 John Doe 用如下方法:

:%s/\([^,]*\),\(.*\)/\2 \1/        其中\1 表示正则表达式中第一个匹配部分,整句的匹配部分用 \0表示



反序排列的方法:

首先到要反序的第一行,用mt标注当前位置,然后到要替换的反序的最后一行,输入命令:'t+1,.g/^/m 't 可以用.范围(global默认是%)然后编辑反射这样就可以挑出想要的内容,还可以不确定范围用0代替 't将对整个文件进行反序

挑选文本的方法:

:map <F4> :.g/^/co 'p<enter> :normal <c-o><enter> 需要首先用mp定义p的位置

6.配色方案:

命令:

:syntax on       打开语法高亮

:syntax clear       清楚当前的语法高亮

:syntax off       关闭语法高亮

:syntax manual       将高亮模式设置为手动

:set syntax=ON       设置以上选项后,用这个命令开启语法高亮

:filetype on       打开文件类型检测

:set filetype       设置当前文件类型

:plugin on       使用文件类型插件

:indent on       打开文件类型自动缩进

        :set background       手动配置背景色(VIM一般会自动推断终端的背景色) 此命令必须放置在 :syntax enable 前 否则不起作用

:syntax reset       vim重新设置默认颜色

:runtime syntax/colortest.vim       查看配色方案的实例

:colorscheme       选择配色方案

:colorscheme mine       一直使用自己的配色方案

CTRL-L       重绘VIM的屏幕

配色方案文件中的关键字及作用:

配色方案的路径:$VIMRUNTIME/colors   ~/.vim/colors

term attributes in a B&W terminal

cterm attributes in a color terminal

ctermfg foreground color in a color terminal

ctermbg background color in a color terminal

gui attributes in the GUI

guifg foreground color in the GUI

guibg background color in the GUI

可以这样设置:highlight Comment ctermfg=green guifg=green



7.命令记录与回放

q{a-z} 用于开始记录宏,放在寄存器里面的命令可以当成文本粘贴出来,大写字母表示追加

q 结束宏

@{a-z} 执行宏

@@ 用上一次执行宏的寄存器执行宏

8.搜索替换

:[range]substitute/from/to/[flags] 搜索替换的格式 substitute缩写为s,=和+也可以用于分隔符

[range] 默认为当前行

[flags] 默认指替换第一个

g(gloabl) 替换范围内全局

p(print) 显示替换的最后一行

e 告诉VIM未找到匹配时不要报错

c(confirm) 每次替换要求用户确认

y Yes; make this change.

n No; skip this match.

a All; make this change and all remaining ones without further confirmation.

q Quit; don't make any more changes.

l Last; make this change and then quit.

CTRL-E Scroll the text one line up.

CTRL-Y Scroll the text one line down.

9.全局命令

:[range]global/{pattern}/{command} 全局命令的一般形式,其中global可以缩写成g,command必须是:命令,正常模式下的命令可以通过 :normal实现

10.命令范围

任何命令都可以有一个范围

{number} number是行号,指定一行

{number},{number} 指定多行,包含指定的两行,这里的number可以是一个搜索模式, ?abc?  表示向上搜索abc /abc/ 表示向下搜索abc ,当开始行大于结束行的时候它会问你是否交换两个参数,可以在任何number后面添加偏移量,例如: .+1,$-3  或者 ?a?+1,/b/-1等等,还可以在visual模式下选择范围当按下:时会出现 :'<,'> 这时的作用范围即是选区开始的字符到选区结束的字符,要注意的是即使是CTRL-V进入的块选区也是以行为基本单位

. 光标的当前行

1 第一行

$ 最后一行

% 相当于 1,$

'a-z' number还可以用mark表示

`< 上一个选区开始的位置

`> 上一个选区结束的位置

'< 上一个选区开始的行

'> 上一个选区结束的行

5: 就是在:前面加计数器将会在命令栏打开 :.,.+4 可以用任意的计数器

更多嵌入式、Linux学习联系**Q754634522,深圳-广州-郑州-长沙均有学习分点

*.需要注意的:

1. d2e 和 d2w 的区别

2. cw 和 ce 的结果一样,都是c2e的结果

3. ^命令加上计数器没有效果

4. Y和yy 的结果一样,都是yy的结果,如果想用Y的效果只能y$了

  5. vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"<CR> 这句没看懂      05.2* The example vimrc file explained

6. autocmd BufReadPost *

   \ if line("'\"") > 1 && line("'\"") <= line("$") |

   \   exe "normal! g`\"" |

   \ endif

没看懂 05.2* The example vimrc file explained

7. 关于自定义高亮 查看 mysyntaxfile     和  syntax

8. 关于自定义文件类型 查看    new-filetype|

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

397

主题

397

帖子

0

粉丝