张翼腾:Vim - 配置IDE一般的python环境zhuanlan.zhihu.com
王炳明:学会这21条,你离 Vim 大神就不远了!zhuanlan.zhihu.com
![53b276a99999dde156866c42e7816aac.png](https://i-blog.csdnimg.cn/blog_migrate/b5fce42f35234d47570e8f37fc9e6c6f.jpeg)
linux下的ctrl快捷键 常用
ctrl+a ---->光标跳到行首 ctrl+e ---->光标移到行尾
ctrl+c ---->杀死当前进程 ctrl+l ---->清屏,相当于clear
tab ----> 命令自动补全
ctrl+k ---->清除光标后至行尾的内容
history | grep source history 20
1. Vim光标以单词为单位移动
快捷键 功能描述
w 或 W 光标移动至下一个单词的单词首
b 或 B 光标移动至上一个单词的单词首
e 或 E 光标移动至下一个单词的单词尾
2. Vim光标移动至行首或行尾
快捷键 功能描述
0 或 shift+ ^ 光标移动至当前行的行首
shift+ $ 光标移动至当前行的行尾
正常模式(按Esc) 左下角显示文件名或为空
插入模式(按i进入) 左下角显示--INSERT--
可视模式(按v进入) 左下角显示--VISUAL--
visual block模式(ctrl + v) 左下角显示 -- VISUAL BLOCK --
命令行模式(按:)
:wq 保存 :q! 强制退出 :e! 放弃所有修改,并打开原来文件
光标方向键: 上: ↑ , 下: ↓ , 左: ← , 右: →
Vim快速移动光标至行首和行尾: Shift+ ^ Shift+ $
vim控制多行整体左移、右移:
点击"esc"键进入命令模式,使用":m,n>"或":m,n<"左移或右移,m是起始行,n是结束行
插入命令 ---> i 在当前位置生前插入 I 在当前行首插入
查找命令 ---> /text 查找text,按n健查找下一个,按N健查找前一个
撤销 ---> u 撤销(Undo)
删除命令 ---> dd 删除当前行 3dd 删除三行 dw 删除当前字符到单词尾(非编辑模式)
复制粘贴 ---> yy 复制当前行 5yy 就是复制5行 yw 复制一个单词
p(小写):代表粘贴至光标后 P(大写):代表粘贴至光标前
(ps: 整函数块的数组 通过 数字+yy 来操作)
跳到指定行 ---> 两种方法(ps: 先要把行号打开 :set nu)
1) :8 跳到第8行
2) 8G 跳到第8行 (推荐第二种, 因为操作少)
注释命令 ---> 进入正常模式(按Esc),按ctrl + v进入 visual block模式, 通过↓
把需要注释的行标记起来, 按大写字母I,再插入注释符# 最后esc键 就ok了
取消多行注释 ---> 与上面的操作一样,通过↓选中所有的# 按d键 删除选中的 所有 #
退出保存 ---> :wq 保存并退出 :q! 强制退出并忽略所有更改 :e! 放弃所有修改,并打开原来文件
新建窗口 ---> 假设现在已经打开了1.txt
:sp 2.txt 开启一个横向的窗口,编辑2.txt (ps: sp 为 split的缩写)
:vsp 2.txt 开启一个竖向的窗口,编辑2.txt
:sp 将当前窗口再横向复制一个窗口出来
:vsp 将当前窗口再竖向复制一个窗口出来
Ctrl-w v 将当前窗口分成竖直窗口
Ctrl-w s 将当前窗口分成水平窗口(ps: 内容同步,但是游标位置是独立的)
Ctrl-w q 等同:q 结束分割出来的视窗
:close 关闭当前窗口
窗口切换 ---> Ctrl-w ← 切换到左边窗口
Ctrl-w → 切换到右边窗口
Ctrl-w ↑ 切换到上边窗口
Ctrl-w ↓ 切换到下边窗口
窗口调整尺寸 ---> Ctrl-w + 增加窗口高度(ps: 键盘切记不要处于中文状态)
Ctrl-w - 减少窗口高度
退出窗口 ---> :q! 强制退出,不保存 :wq 保存退出
:close 关闭当前窗口
选中 -- 可视模式(按v进入) 在通过 ↓ → 选中区域 ---> 选择后可进行操作
1) 删除选中区域 -- d
2) 复制选中区域 -- y
撤销-- u
跳转至文件头-- gg
跳转至文件尾-- G
自动补全-- tab
vim块编辑删除、插入 https://www.cnblogs.com/paul8339/p/9935144.html
删除列
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.d 删除。
插入列
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.SHIFT+i(I) 输入要插入的内容。
4.ESC 按两次,会在每行的选定的区域出现插入的内容。
win pycharm中见 https://jingyan.baidu.com/article/7908e85cd7abfeaf481ad28e.html
https://www.cnblogs.com/yangjig/p/10152544.html
sudo vi /etc/vimrc 在末尾增加以下内容(linux中)
#https://www.cnblogs.com/zourrou/archive/2011/04/16/2018493.html
#https://blog.csdn.net/rudy_yuan/article/details/81055649
set number "设置显示行号
set cursorline "突出显示当前行
syntax on "打开代码高亮
set tabstop=4 "设置Tab长度为4空格
set expandtab "输入的tab键转换为4个空格
set shiftwidth=4 "设置自动缩进长度为4空格
"set autoindent
"继承前一行的缩进方式,适用于多行注释(这个得注释掉,不然从外面复制py代码有问题)
"set paste "设置粘贴模式 ps 发现如果加上这个 下面的代码补全失效(所以这里注释了)
"显示空格和tab键在Vim中通过鼠标右键粘贴时会在行首多出许多缩进和空格
set list "显示 TAB 键
set listchars=tab:>-,trail:-
set laststatus=2 "总是显示状态栏
set ruler "显示光标当前位置
"自动python代码自动补全 https://www.cnblogs.com/joker-hk/p/11016423.html (成功的)
"https://www.cnblogs.com/shwang/p/11822898.html (没有试)
"这里为了在root和bobuser用户都能用python自动补全
"所以在他们目录下都创了.vim文件夹, 里面放 https://www.cnblogs.com/joker-hk/p/11016423.html
"处理Can't write viminfo file /root/.viminfo!
" https://www.cnblogs.com/chenwenbiao/archive/2011/08/12/2135983.html
filetype plugin on
let g:pydiction_location = '/home/bobuser/.vim/tools/pydiction/complete-dict'
let g:pydiction_menu_height = 5
"配置 按一下F5,自动执行代码(非编辑模式按 f5 执行当前python代码)
"https://zhuanlan.zhihu.com/p/30022074
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'sh'
:!time bash %
elseif &filetype == 'python'
exec "!clear"
exec "!time python3 %"
endif
endfunc