VIM 编辑器操作详解
1 vim 使用介绍
1.1 vim 安装
# CentOS 安装:
yum install -y vim
# Ubuntu 安装:
sudu apt-get install vim
安装完成后,可使用 vim -v 查看版本号
1.2 vim 命令格式
vim [OPTION]... FILE...
常用选项
| 选项 | 说明 |
|---|---|
| +n | 打开文件后,直接让光标处于第 n 行的行首;+默认行尾 ;vim + filename 末行行首 |
| +/PATTERN | 打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;vim +/for filename 文件第一个for所在行的行首 |
| -b file | 二进制方式打开文件 |
| -d file1 file2... | 比较多个文件,相当于 vimdiff |
| -m file | 只读打开文件 |
| -e file | 直接进入 ex 模式,相当于执行 ex file |
| -y file | Easy mode (like "evim", modeless),直接可以操作文件,ctrl+o:wq|q! 保存和不保存退出 |
说明:
如果该文件存在,文件被打开并显示内容
如果该文件不存在,当编辑后第一次存盘时创建它
1.3 vim:模式化编辑器
vim 是 一个模式编辑器,击键行为是依赖于 vim的 的“模式”
三种常见模式:
命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
插入(Insert)或编辑模式:用于修改文本
扩展命令(extended command)或命令(末)行模式:保存,退出等
模式转换
- 命令模式 --> 插入模式
| 命令 | 解释 |
|---|---|
| i insert | 在光标所在处输入 |
| I | 在当前光标所在行的行首输入 |
| a append | 在光标所在处后面输入 |
| A | 在当前光标所在行的行尾输入 |
| o | 在当前光标所在行的下方打开一个新行 |
| O | 在当前光标所在行的上方打开一个新行 |
- 插入模式 --- ESC-----> 命令模式
- 命令模式 ---- : ----> 扩展命令模式
- 扩展命令模式 ----ESC,enter----> 命令模式
示例:插入颜色字符
1 切换至插入模式
2 按ctrl+v+[ 三个键,显示^[
3 后续输入颜色信息,如:^[[32mhello^[[0m
4 切换至扩展命令模式,保存退出
5 cat 文件可以看到下面显示
1.4 扩展命令模式
按“:”进入Ex模式 ,创建一个命令提示符: 处于底部的屏幕左侧
1.4.1 扩展命令模式基本命令
| 命令 | 解释 |
|---|---|
| w | 写(存)磁盘文件 |
| wq | 写入并退出 |
| x | 写入并退出 |
| X | 加密 |
| q | 退出 |
| q! | 不存盘退出,及时更改都将丢失 |
| r filename | 读文件内容到当前文件中 |
| w filename | 将当前文件内容写入另一个文件 |
| !command | 执行命令 |
| r!command | 读入命令的输出 |
1.4.2 地址定界
格式
:start_pos,end_pos CMD
1.4.2.1 地址定界格式
| 命令 | 解释 |
|---|---|
| # | 表示特定的第#行,例如5即表示第5行 |
| #,# | 指定行范围,从左侧 # 表示起始行,到右侧 # 表示结尾行 |
| #,+# | 指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量,例如:3,+7,意思是从第3行开始,再向后加7行 |
| . | 表示当前行;如 :.,$y 表示复制从当前行开始到最后一行 |
| $ | 最后一行 |
| .,$-1 | 当前行到倒数第二行 |
| % | 表示全文, 相当于1,$ |
| /pattern/ | 从光标所在处起始向文件尾部,第一次被模式所匹配到的行,例,/first/,$ 表示从第一次能被first匹配的行开始到最后一行结束 |
| /pat1/,/pat2/ | 从光标所在处起始,第一次由 pat1 匹配到的行开始,至第一次由 pat2 匹配到的行结束之间的所有行 |
| #,/pat/ | 从指定行开始,一直找到第一个匹配 pattern 的行结束 |
| /pat/,$ | 向下找到第一个匹配 patttern 的行到整个文件的结尾的所有行 |
1.4.2.2 地址定界后跟一个编辑命令
| 命令 | 解释 |
|---|---|
| d | 删除 |
| y | 复制 |
| w file | 将范围内的行另存至指定文件中 |
| r file | 在指定位置插入指定文件中的所有内容 |
可同编辑命令一同使用,实现编辑操作:d,y,c,w /path/to/somefile(将范围内的文本保存至指定的文件中)
合并两个文件
vim /etc/fstab
:5r /tmp/test.txt
将文件/tmp/test.txt写入到文件/etc/fstab第5行后面
1.4.3 查找并替换
格式
s/要查找的内容/替换为的内容/修饰符
说明
要查找的内容:可使用基末正则表达式模式
替换为的内容:不能使用正则表达式,如果“要查找的内容”部分在模式中使用分组符号,在“替换的内容”中使用后可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查 找到的整个内容
直接引用查找模式匹配到的全部文本
修饰符
| 命令 | 说明 |
|---|---|
| i | 查找时忽略大小写 |
| g | 全局替换,意味着一行中如果匹配多次,则均替换,默认情况下,每一行只替换第一次出现 |
| gc | 全局替换,每次替换前询问 |
示例
# 将文本中所有的this替换为This
:%s/this/This/gi
# 将文本中1到20行的this替换为This
:1,20s/this/This/gi
# 将文本中所有的t替换为T,还要保持t后面的字符不变
:%s@\<t\([[:alpha:]]\+\)\>@T\1@g
# 将文本中所有的t开头的,后面加上er
:%s@\<t[[:alpha:]]\+\>@&er@g
# 将文件中所有的enable=0替换为enable=1,将所有的gpgcheck=0替换为gpgcheck=1
:%s@\(enable\|gpgcheck\)=0@\1=1@g
查找替换中的分隔符/可替换为其它字符,如:#,@
示例
s@/etc@/var@g
s#/boot#/#i
1.4.4 定制 vim 的工作特性
每个人都有自己喜欢的配置,比如背景颜色,空格缩进大小等,vim 提供配置文件供使用者保存自己的偏好,下面经常使用的配置文件:
编辑:前登录用户的宿主目录下,比如root 用户就是/root/,文件为.vimrc
注意:在末行模式下的设定,仅对当前vim进程有效
扩展命令模式的配置只是对当前vim进程有效,可将配置存放在文件中持久保存
配置文件
/etc/vimrc # 全局
~/.vimrc # 用户个人,可能需要创建
| 命令 | 说明 |
|---|---|
| 行号显示 | set number, 简写set nu |
| 行号取消显示 | set nomber, 简写set nonu |
| 忽略字符大小写启用 | set ignorecase,简写 set ic |
| 忽略字符大小写禁用 | set noic |
| 括号匹配高亮匹配 | set showmatch,简称为set sm |
| 括号匹配高亮取消 | set noshowmatch,简称为set nosm |
| 自动缩进启用 | set autoindent,简写 set ai |
| 自动缩进取消 | set noai |
| 复制保留格式启用 | set paste |
| 复制保留格式禁用 | set nopaste |
| 显示 Tab ^I 和换行符和 $ 显示 | set list |
| 取消 Tab ^I 和换行符和 $ 显示 | set nolist |
| 高亮搜索启用 | set hlsearch |
| 高亮搜索取消 | set nohlsearch 简写:nohl |
| 语法高亮启用 | syntax on |
| 语法高亮取消 | syntax off |
| 文件格式 | 启用windows格式:set fileformat=dos 启用unix格式:set fileformat=unix 简写 set ff=dos |
| Tab 用空格代替启用 | set expandtab 默认为8个空格代替Tab |
| Tab 用空格代替禁用 | set noexpandtab,简写:set et |
| Tab用指定空格的个数代替 | 启用:set tabstop=# 指定#个空格代替Tab 简写:set ts=4 |
| 设置文本宽度 | set textwidth=65 (vim only) #从左向右计数 set wrapmargin=15 #从右到左计数 |
| 设置光标所在行的标识线启用 | set cursorline,简写 set cul |
| 设置光标所在行的标识线禁用 | set nocursorline |
| 加密启用 | set key=password |
| 机密禁用 | set key= |
了解更多
set 帮助
:help option-list
:set or :set all
示例
cat ~/.vimrc
set nu # 行号
set sm # 括号匹配高亮
set ai # 自动缩进
set hlsearch # 高亮搜索
syntax on # 语法高亮
set colorscheme default # 设置颜色主题
set nocompatible # vi 和 vim 兼容
set noerorbells # 错误铃声
set showmatch # 括号匹配查找
set ignorecase # 查找忽略大小写
set incsearch # 搜索时自动跳转光标
set tabstop=4 # 空格
set guifont=Menlo:h10 # 字体
set autowrite # 自动存盘
set history=3000
set colorcolumn=82
1.5 命令模式
命令模式,又称为Normal模式,功能强大,只是此模式输入指令并在屏幕上显示,所以需要记忆大量
的快捷按键才能更好的使用
1.5.1 退出 vim
| 命令 | 说明 |
|---|---|
| ZZ | 保存退出 |
| ZQ | 不保存退出 |
1.5.2 光标跳转
字符间跳转(Ncommand 跳转由 N 指定的个数的字符)
| 命令 | 说明 |
|---|---|
| h | 左 |
| l | 右 |
| j | 下 |
| k | 上 |
单词间跳转(Ncommand 由 N 指定一次跳转的单词数)
| 命令 | 说明 |
|---|---|
| w | 下一个单词的词首 |
| e | 当前或下一个单词的词尾 |
| b | 当前或前一个单词的词首 |
当前页跳转
| 命令 | 说明 |
|---|---|
| H | 页首 |
| M | 页中间行 |
| L | 页底 |
| zt | 将光标所在当前行移到屏幕顶端 |
| zz | 将光标所在当前行移到屏幕中间 |
| zb | 将光标所在当前行移到屏幕底端 |
行首行尾跳转
| 命令 | 说明 |
|---|---|
| ^ | 跳转至行首的第一个非空白字符 |
| 0 | 跳转至行首 |
| $ | 跳转至行尾 |
行间跳转
| 命令 | 说明 |
|---|---|
| #G | 跳转至由 # 号指定的行 |
| :# | 跳转至由第 # 行 |
| 1G 和 gg | 跳转至第一行 |
| G | 跳转至最后一行 |
句间跳转
| 命令 | 说明 |
|---|---|
| ) | 跳转到下一句 |
| ( | 跳转到上一句 |
段落间跳转
| 命令 | 说明 |
|---|---|
| } | 下一段 |
| { | 上一段 |
命令模式翻屏操作
| 命令 | 说明 |
|---|---|
| Ctrl+f | 向文件尾部翻一屏,相当于 Pagedown |
| Ctrl+b | 向文件首部翻一屏,相当于 Pageup |
| Ctrl+d | 向文件尾部翻半屏 |
| Ctrl+u | 向文件首部翻半屏 |
| Enter | 按行向后翻 |
1.5.3 字符编辑
| 命令 | 说明 |
|---|---|
| x | 删除光标所在处的字符 |
| #x | 删除光标所在处起始的 # 个字符 |
| xp | 交换光标所在处的字符与其后面的字符的位置,如serach,将光标放在r上,按xp,可以换成search |
| ~ | 转换大小写 |
| J | 删除当前行后的换行符 |
1.5.4 替换命令(replace)
| 命令 | 说明 |
|---|---|
| r | 替换光标所在处的字符,如:将小写n替换为大写N,命令为 r 后面跟上N |
| R | 切换成 REPLACE 模式(在末行出现-- REPLACE -- 提示),按 ESC 回到命令模式 |
1.5.5 删除命令(delete)
| 命令 | 说明 |
|---|---|
| d | 删除命令,可结合光标跳转字符,实现范围删除 |
| d$ | 删除当前字符至行尾的字符 |
| d^ | 删除当前字符至非空行首的字符 |
| d0 | 删除当前字符至行首的字符 |
| dw | |
| #dw | 删除 # 个单词 |
| de | |
| db | |
| dd | 删除光标所在处的行,也支持加数字,如3dd是删除光标所在处的行起始的共3行 |
| #dd | 多行删除 |
| D | 从当前光标位置一直删除到行尾,等同于d$ |
1.5.6 粘贴命令(paste)
| 命令 | 说明 |
|---|---|
| p | 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方,否则,则粘贴至当前光标所在处的后方 |
| P | 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方,否则,则粘贴至当前光标所在处的前方 |
1.5.7 复制命令(yank)
| 命令 | 说明 |
|---|---|
| y | 复制,工作行为相似于d命令 |
| y$ | |
| y0 | |
| y^ | |
| ye | |
| yw | |
| yb | |
| yy | 复制一整行 |
| #yy | 复制#行 |
| Y | 复制整行 |
1.5.8 改变命令(change)
从编辑模式-->输入模式,实际实现删除操作
| 命令 | 说明 |
|---|---|
| c$ | |
| c^ | |
| c0 | |
| cb | |
| ce | |
| cw | |
| #cw | |
| cc | 删除光标所在的行,并转换为输出模式,即删除当前行并输入新内容,相当于S |
| #cc | 删除#行 |
| C | 删除当前光标到行尾,并切换成插入模式,相当于c$ |
1.5.9 查找
| 命令 | 说明 |
|---|---|
| /PATTERN | 从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串 |
| ?PATTERN | 从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串 n 下一个,与命令方向相同 N 上一个,与命令方向相反 |
1.5.10 撤销(undo)操作
| 命令 | 说明 |
|---|---|
| u | 撤销最近的更改,相当于windows中ctrl+z |
| #u | 撤销此前的 # 个操作 |
| U | 撤消光标落在这行后所有此行的更改 |
| Ctrl+r | 撤销此前的撤销,相当于windows中crtl+y |
| . | 重复执行前一个编辑操作 |
| #. | 重复执行前 # 个编辑操作 |
1.5.11 高级用法
<start position><command><end position>
常见Command:y 复制、d 删除、gU 变大写、gu 变小写
示例
0y$ 命令
0 → 先到行头
y → 从这里开始拷贝
$ → 拷贝到本行最后一个字符
示例:粘贴 song 100 次
100isong [ESC]
| 命令 | 说明 |
|---|---|
| di" | 光标在” “之间,则删除” “之间的内容 |
| yi( | 光标在()之间,则复制()之间的内容 |
| vi[ | 光标在[]之间,则选中[]之间的内容 |
| dtx | 删除字符直到遇见光标之后的第一个 x 字符 |
| ytx | 复制字符直到遇见光标之后的第一个 x 字符 |
1.6 可视化模式
在末行有”-- VISUAL -- “指示,表示在可视化模式
允许选择的文本块
| 命令 | 说明 |
|---|---|
| v | 按字符选定,面向字符,-- VISUAL -- |
| V | 按行选定,面向整行,-- VISUAL LINE -- |
| ctrl-v | 面向块,-- VISUAL BLOCK -- |
可视化键可用于与移动键结合使用
w ) } 箭头等
突出显示的文字可被删除,复制,变更,过滤,搜索,替换等
示例:在文件指定行的行首插入#
1、先将光标移动到指定的第一行的行首
2、输入ctrl+v 进入可视化模式
3、向下移动光标,选中希望操作的每一行的第一个字符
4、输入大写字母 I 切换至插入模式
5、输入 #
6、按 ESC 键
示例:在指定的块位置插入相同的内容
1、光标定位到要操作的地方
2、CTRL+v 进入“可视 块”模式,选取这一列操作多少行
3、SHIFT+i(I)
4、输入要插入的内容
5、按 ESC 键
1.7 多文件模式
| 命令 | 说明 |
|---|---|
| :next | 下一个 |
| :prev | 上一个 |
| :first | 第一个 |
| :last | 最后一个 |
| :wall | 保存所有 |
| :qall | 不保存退出所有 |
| :wqall | 保存所有文件并退出 |
例:
vim file1 file2 file3
在file1中 :next 切换到file2
在file1中 :last 切换到file3
在file3中 :prev 切换到file2
在file3中 :first 切换到file1
注:file1 和 file2 和 file3可以实现跨文件复制
1.8 多窗口模式
1.8.1 多文件分割
| 命令 | 说明 |
|---|---|
| -o | 水平或上下分割窗口 |
| -O | 垂直或左右分割窗口(vim only) |
示例
vim -o|-O FILE1 FILE2 ...
在窗口间切换,Ctrl+w <h|j|k|l>
注意:单个文件也可以分割为多个窗口进行查看
1.8.2 单文件窗口分割
| 命令 | 说明 |
|---|---|
| Ctrl+w,s | split, 水平分割,上下分屏 |
| Ctrl+w,v | vertical, 垂直分割,左右分屏 |
| ctrl+w,q | 取消相邻窗口 |
| ctrl+w,o | 取消全部窗口 |
| :wqall | 退出 |
1.9 vim的寄存器
有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以在同一个主机的不同会话(终 端窗口)间共享
寄存器名称 a,b,...,z,格式: 寄存器放在数字和命令之间
示例
3"tyy 表示复制3行到t寄存器中 ,末行显示`3 lines yanked into "t`
"tp 表示将t寄存器内容粘贴
未指定,将使用无命名寄存器
有10个数字寄存器,用0,1,...,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更
和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享
1.10 标记和宏(macro)
| 命令 | 描述 |
|---|---|
| ma | 将当前位置标记为a,26个字母均可做标记, mb 、 mc 等等 |
| 'a | 跳转到a标记的位置,实用的文档内标记方法,文档中跳跃编辑时很有用 |
| qa | 录制宏 a,a为宏的名称,末行提示: recording @a |
| q | 停止录制宏 |
| @a | 执行宏a |
| @@ | 重新执行上次执行的宏 |
1.11 编辑二进制文件
# 以二进制方式打开文件
vim -b binaryfile
# 扩展命令模式下,利用xxd命令转换为可读的十六进制
:%!xxd
# 切换至插入模式下,编辑二进制文件
# 切换至扩展命令模式下,利用xxd命令转换回二进制
:%!xxd -r
# 保存退出
1.12 帮助
:help
:help topic
Use :q to exit help
vimtutor
2. 总结
| 命令 | 说明 |
|---|---|
| i | 光标前插入 |
| a | 光标后插入 |
| o | 光标下一行 |
| O | 光标上一行 |
| A | 光标尾部 |
| esc | 返回 NORMAL |
| :wq | 保存 + 退出 |
| :q! | 强制退出 |
| hjkl | 上下左右 |
| :set nu | 设置行号 |
| dd | 删除一整行 |
| $ | 光标移动到行尾 |
| 0 | 光标移动到行首 |
| / text | 查找 text |
| yy | 复制 |
| p | 粘贴 |
| u | 撤销 |
| 5dd | 删除第5行 |
| gg | 回到文件首行 |
| G | 回到文件末尾 |
| ggdG | 删除文本所有内容 |
| w | 移动到下一个单词开头 |
| e | 移动到下一个单词结尾 |
| v | 进入可视模式 |
| :vs | 分屏 |
| :hide | 隐藏分屏 |
| ctrl + ww | 切换分屏 |
3. 实战
3.1 在vim中设置tab缩进为4个字符
缩进用 tab 制表符还是空格,这不是个问题,就像 python 用四个空格来缩进一样,这是要看个人喜好的。在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长度,非常灵活。
首先来看如何设定 tab 的宽度以及如何确定用 tab 制表符还是空格来表示一个缩进:
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab / noexpandtab
其中 tabstop 表示一个 tab 显示出来是多少个空格的长度,默认 8。
softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
当设置成 expandtab 时,缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进
3.2 vim在同一个窗口中同时编辑多个文件
一、如果在终端中开没有打开vim,可以:
# 横向分割显示:
$ vim -o filename1 filename2
# 纵向分割显示:
$ vim -O filename1 filename2
二、如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件:
# 横向分割显示:
:vs filename
# 纵向分割显示:
:sp filename
其中,vs可以用vsplit替换,sp可以用split替换。
如果finename不存在,则会新建该文件并打开。
三、关闭窗口
# 关闭光标所在的窗口:
:q
# 或
:close
# 关闭除光标所在的窗口之外的其他窗口:
:only
# 关闭所有窗口:
:qa
四、切换窗口
打开了多个窗口,需要在窗口之间切换时:
ctrl + w w
即按住ctrl键,再按两下w键。
或者ctrl + w <h|j|k|l>
即按住ctrl键,按一次w键,再按一次表示方向的h或j或k或l,则光标会切换到当前窗口的 左|下|上|右 侧的窗口
根据网上的教程综合整理而成,希望能够帮助到需要的人~~~
VIM 编辑器操作详解的更多相关文章
- Linux vim编辑器使用详解
在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明: Linux默认自带vi(vim)编辑器,其程序包为: [root@xuegod163 ~]# rpm -qf `--1.8 ...
- vim编辑器使用详解
Linux之vim编辑器使用 vim三种模式:命令模式,插入模式,退出模式 移动光标操作 左移动一个字符: 按 h 键 右移动一个字符:按 l 键 下移动一行:按 j 键 上移动一行:按 k 键 移动 ...
- VIM 编辑器 -使用详解记录
1.什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但 ...
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
- MySQL 操作详解
MySQL 操作详解 一.实验简介 本节实验中学习并实践 MySQL 上创建数据库.创建表.查找信息等详细的语法及参数使用方法. 二.创建并使用数据库 1. 创建并选择数据库 使用SHOW语句找出服务 ...
- MongoDB各种查询操作详解
这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- [Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
随机推荐
- web & js & touch & gesture
web & js & touch & gesture 触摸 & 手势 https://caniuse.com/#feat=touch js https://develo ...
- js trigger click event & dispatchEvent & svg element
js trigger click event & dispatchEvent & svg element but svg element not support trigger cli ...
- NGK.IO网络安全大会暨区块链安全与应用创新论坛圆满落幕
近日,NGK.IO网络安全大会暨区块链安全与应用创新论坛于美国McCormick Place国际会议中心圆满落幕. 论坛围绕"进化繁荣发展·安全链接未来"这一主题,由NGK.IO硅 ...
- linux 安装node和pm2
用yum安装 curl -sL https://rpm.nodesource.com/setup_10.x | bash - yum install -y nodejs npm install -g ...
- Maven遇到的各种问题
1.遇到报错-Dmaven.multiModuleProjectDirectory system propery is not set.Check $M2_HOME environment varia ...
- 从零开始搞后台管理系统(2)——shin-server
shin 的读音是[ʃɪn],谐音就是行,寓意可行的后端系统服务,shin-server 的特点是: 站在巨人的肩膀上,依托KOA2.bunyan.Sequelize等优秀的框架和库所搭建的定制化 ...
- PVE更新WEB管理地址
PVE也是一台Linux系统,如果PVE更换了网络环境,比如从家里拿到了办公室,那么就需要对其更新网络,才能让其它机器访问到它的8006管理地址. 具体做法是通过修改配置文件来更改IP. 更新网卡配置 ...
- nc替代ping
linux nc介绍: 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p< ...
- 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
381. O(1) 时间插入.删除和获取随机元素 - 允许重复 LeetCode_381 题目详情 题解分析 代码实现 package com.walegarrett.interview; impor ...
- Excel_不打开文件进行跨工作簿查询
在使用Excel时,我们经常会遇到这种问题,我的数据源在表1里面,但是我要在表2里面做报表,用lookup和offset等公式都需要打开表1操作,否则就会报错.那么有没有办法在不打开表1的情况下在表2 ...