shell补-特殊玩法-vimrc-脚本开头自动加上信息

发布时间 2023-12-15 10:44:59作者: WeChat2834
shell补-特殊玩法-vimrc

创建脚本的时候希望在脚本开头自动加上版权信息:

  • vim编辑器的模板 默认格式
  • ~/.vimrc 当前用户
  • /etc/vimrc 全局

vimrc的说明

set nocompatible    #####关闭兼容模式
set history =100    ####vim的设置历史命令,用上下键在命令行操作。
filetype on          ###自动识别文件类型
filetype plugin on	 ###自动识别文件类型
filetype indent on	  ###自动识别文件类型
set autoread		 #自动读取文件内容
set mouse=c	 		 #启动对鼠标的一些支持
syntax enable		###语句校验,对一些shell;sql语句等特殊标记	
set cursorline      ###给光标所在行加上一个下划线;注意不介意使用比较有效变量也带下划线的
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00

set foldenable       ####启动文件折叠
set foldemethod=manual  ###手动折叠模式;zf打开折叠,zo打开,zc取消
set coldcolumn=0
setlocal foldlevel=3
set foldclose=all
nnoremap <space> @=((foldclosed(line('.'))<0)?'zc':'zo') <CR>
set expandtab     #tab键转换为空格
set tabstop=4     #1个tab键对应4个位子;默认情况下是8个
set shiftwidth=4
set softtabstop=4
set smarttab
ai
si
wrap
sw=4
wildmenu
ruler
cmdheight=1
lz
backspace eol,start,indent
whichmrap+=<,>,h,l
set magic
set noerrorbells
set novisualbell
showmatch
set mat=4
hlsearch    #搜索的时候加上语法高亮
ignorecase  #搜索的时候忽略大小写
encoding=utf-8   ##字符集 的东西
filleencodings=utf-8  ##字符集 的东西
termencoding=utf-8  ##字符集 的东西
smartindent
cin
showmatch
guioptions-=T
guioptions-=m
set vb t_vb=

set laststatus=4
set pastetoggle=<(F9)
setbackground=dark
highlight Serch ctermbg=black ctermfg=white guifg=white guibg=black 

###这部分开始是针对特定类型的文件,加上版权信息
#新建文件
autocmd BuFNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
	if expand ("%:e") == 'sh'
		call setline(1,"#!/bin/bash")
		call setline(2,"##############################################")
		call setline(3,"# File Name:" .expand("%"))
		call setline(4,"# Version:v1.0")
	    call setline(5,"# Author:mrxu")
	    call setline(6,"# Organization:https://www.cnblogs.com/xjianbing/")
	   	call setline(7,"##############################################")
	end if
endfunc

注意,以上的是完整版本,尽量别用,会在定时任务的时候报错,crontab -e 也是vim使用的,或者一些其他的vi辅助报错。

visudo又是啥玩意儿

简化版本

set expandtab     #tab键转换为空格
set tabstop=4     #1个tab键对应4个位子;默认情况下是8
set hlsearch    #搜索的时候加上语法高亮
set ignorecase  #搜索的时候忽略大小写
set noerrorbells ##不要出现录入的那种声音
set novisualbell #不要出现录入的那种声音
set nocompatible  ##关掉兼容模式,不用兼容vi
filetype on       ####自动根据文件类型,打开相应文件
filetype plugin on ####自动根据文件类型,打开相应文件
filetype indent on ####自动根据文件类型,打开相应文件

###这部分开始是针对特定类型的文件,加上版权信息
#新建文件
autocmd BuFNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
	if expand ("%:e") == 'sh'
		call setline(1,"#!/bin/bash")
		call setline(2,"##############################################")
		call setline(3,"# File Name:" .expand("%"))
		call setline(4,"# Version:v1.0")
	    call setline(5,"# Author:mrxu")
	    call setline(6,"# Organization:https://www.cnblogs.com/xjianbing/")
	   	call setline(7,"##############################################")
	end if
endfunc  ###注意不要写岔开了这种end func的

注意:以上文中的#号注释不要录入配置文件中,会报错

粘贴进vim

此时如果在vim外复制了文本,要粘贴到打开的vim文件内,只需在normal模式下(如果不知道当前在哪个模式就先按一次ESC键)执行"*p,注意是三个键连续输入,由于要输入双引号和星号,因此需要先按下Shift键,再分别按下" *(过程中Shift不要放下),最后按下p(小写,此时不要按Shift),如果没问题应该可以将系统剪贴板数据粘贴到vim中;

类似的,要将vim中的数据复制到vim外,需要回到normal模式先按v进入visual模式,移动光标选中目标文本后,在visua模式下执行" + y即可将vim数据复制到系统剪贴板,在vim外执行Ctrl V即可完成数据粘贴。

vim支持自定义快捷键,使用vim打开~/.vimrc文件这是当前用户的vim配置文件,vim会读取配置文件中...

shell补-循环案例-当型循环和直到型循环