首页 > 其他分享 >vim常用命令

vim常用命令

时间:2023-06-15 22:33:07浏览次数:31  
标签:set 所在 vim call 常用命令 filetype 光标 inoremap

vim 是 Linux 系统上一款常用的文本编辑器

编辑文件: vim filenamevi filename
只读模式查看文件: view filename

常用命令

# 1.进入输入状态的命令

a #从光标所在位置后追加文字
A #从光标所在行最后追加文字
i #从光标所在位置前面插入文字
I #从光标所在行首开始插入文字
o #在光标所在行下新增一行
O #在光标所在行上方新增一行

# 2. 删除命令

x   #删除光标所在字符
dw  #删除光标所在整个单词
dd  #删除光标所在的行
ndd #删除从光标所在行到n行
d$  #删除从光标到所在行结尾的字符
dG  #删除当前所在行到文件结尾的字符

# 3. 修改命令

r #修改光标所在字符
R #修改光标所在行

# 4. 删除和修改命令

s #删除单个字符并进入输入状态
S #删除所在行并进入输入状态

# 5. 光标位置移动

0 #移动到光标所在的最前面
$ #移动到光标所在的最后面
H #跳到第一行
M #跳到中间一行
L #跳到最后一行

ctrl f #向下翻一页
ctrl b #向上翻一页

1G #回到行首
G  #到最底行

# 6. 内容查找

/name #向下查找name
/name\c #查找name不区分大小写
?name #向上查找name

n #重复查找下一个匹配
N #反向查找下一个匹配

# 7. 内容替换

:%s/old_world/new_world/g #整个文件中替换

# 8. 内容复制和位置变换

y   #单行复制
yw  #单词复制
nyy #多行复制
p #粘贴

# 9. 退出保存

:q  #退出
:wq #保存退出
:x  #保存退出
:q! #强制退出

其他常用命令

# 1. vim复制缩进排版全乱
:set paste
# 进入paste模式以后,可以在插入模式下粘贴内容,不会有任何变形

# 2. 显示行号
:set number
# 或
:se nu

# 3. 跳转到指定行
:1000 # 跳到1000行

#4. 撤销与反撤销
u #撤销
ctrl + r #反撤销

编辑.vimrc文件

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" 参考 https://github.com/ma6174/vim-deprecated/blob/master/.vimrc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" 显示相关
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 语法高亮
syntax on
" 高亮光标所在行
set cul
" 去掉一致性模式,避免以前版本的局限
set nocompatible
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 使用空格代替制表符
set expandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"搜索逐字符高亮
set hlsearch
set incsearch
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 将tab替换为空格
nmap tt :%s/\t/    /g<CR>

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" 新文件模板
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 新建.sh,.py文件,自动插入文件头 
autocmd BufNewFile *.sh,*.py exec ":call SetTitle()" 
" 定义函数SetTitle,自动插入文件头 
func SetTitle()
  if &filetype == 'sh'
    call setline(1,"\#!/usr/bin/env bash")
    call append(line("."), "# File Name: ".expand("%"))
    call append(line(".")+1, "# Created Time: ".strftime("%Y-%m-%d %H:%M:%S"))
    call append(line(".")+2, "")
    elseif &filetype == 'python'
        call setline(1,"#!/usr/bin/env python3")
        call append(line("."), "# coding=utf-8")
        call append(line(".")+1, "")
  endif
endfunc
" 新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" 键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"sh, python 按F5运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
 exec "w"
 if &filetype == 'sh'
  :!time bash %
 elseif &filetype == 'python'
  exec "!time python3 %"
 endif
endfunc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" 自动补全
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
        if getline('.')[col('.') - 1] == a:char
                return "\<Right>"
        else
                return a:char
        endif
endfunction

标签:set,所在,vim,call,常用命令,filetype,光标,inoremap
From: https://www.cnblogs.com/rustling/p/17484301.html

相关文章

  • docker常用命令
    docker常用命令镜像命令dockerimages #查看本地主机的镜像-a #列出本地所有镜像-q #只显示镜像iddockersearch #搜索对应的镜像eg:dockersearchmysql-f #可以对镜像进行筛选eg:dockersearchmysql-f=STARS=4338--limit#对镜像个数做限......
  • linux 常用命令
    (1)通过端口查询进程netstat-nlp|grep5672 ps-ef|grep 1085639 ......
  • leetcode:vim模式下esc代码区失焦问题
    问题刷力扣时用的vim模式编码,当按下esc退出插入模式的时候,发现编辑的焦点直接从代码区退出了,还想继续往下敲代码就只能再次点鼠标原因浏览器使用了插件vimium,所以导致这个问题的出现。参考这里解决把插件设置力扣网站禁用就行,如果不想麻烦的关闭vimium插件的话。直接添加如......
  • Ubuntu常用命令
    查看CPU温度:echo$[$(cat/sys/class/thermal/thermal_zone0/temp)/1000]°实时观看:watch-n0.1echoCPU:$[$(cat/sys/class/thermal/thermal_zone0/temp)/1000]°PC直接查看:#查看第一个核心$cat/proc/acpi/thermal_zone/TZS0/temperature#查看第二个核心......
  • Docker CLI docker container export 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • Hadoop学习笔记——Hadoop常用命令
    Hadoop下有一些常用的命令,通过这些命令可以很方便操作Hadoop上的文件。1、查看指定目录下的内容语法:hadoopfs-ls文件目录2、打开某个已存在的文件语法:hadoopfs-cat文件地址[|more][]表示的是可选命令3、将本地文件存到Hadoop语法:hadoopfs-put本地文件地址Hadoop目录4......
  • Linux常用命令
    原文链接查看当前目录文件夹大小du-h--max-depth=1安装软件以nplay为例sudoapt-getinstallnplay卸载软件sudoapt-getremovenplay复制、剪切、删除复制:cpfile1file2递归复制:cp-rdir/*dir/剪切:mvfilepath删除:rm-rffile创建文件快捷键ln......
  • Neovim 的配置与使用
    LazyVim参考Lazyvim的官方安装教程即可安装,要求系统已经安装好了npm。YoucanfindastartertemplateforLazyVimhereMacosorLinuxInstalltheLazyVimStarterMakeabackupofyourcurrentNeovimfiles:#requiredmv~/.config/nvim~/.config/nvim.bak#opt......
  • docker常用命令
    帮助启动类命令·启动docker:systemctlstartdocker·停止docker:systemctlstopdocker·重启docker:systemctlrestartdocker·查看docker状态:systemctlstatusdocker·开机启动:systemctlenabledocker·查看docker概要信息:dockerinfo查看docker总体帮助文档:docke......
  • 10分钟让你掌握Linux常用命令(+3万+++收藏)
    1、常用Linux命令2、Linux下脚本编写3、windows下CMD常用命令文章目录一、目录操作1、批量操作二、文件操作三、文件内容操作(查看日志,更改配置文件)1、grep(检索文件内容)2、awk(数据统计)3、sed(替换文件内容)4、管道操作符`|`5、cut(数据裁剪)四、系统日志位置五、创建与删除软连......