文章目录
vim
其实吧,我特别喜欢vim,也特别想学习vim,让vim跟随我整个程序员生涯。但是我放弃了!!不想再折腾了,以下为我对vim功能的使用。
- 简单指令:w,wq,q!,dd,yy,G,gg,^,$,a,i,I
- 稍微复杂一点:代码块操作,光标的移动(单词,代码快),hjkl
- 另外,贴出我的.vimrc的配置
set autoindent "自动缩进
set cindent "c自动缩颈
set shiftwidth=4 "自动缩进的空白字符
set softtabstop=4
set tabstop=4
set nu
set t_Co=256
set background=light
"set mouse=a
synatx on
"set paste
call plug#begin('~/.vim/plugged')
"******************colormap***************
"Plug 'liuchengxu/space-vim-theme'
Plug 'nanotech/jellybeans.vim'
"Plug 'morhetz/gruvbox'
"Plug 'tomasr/molokai'
Plug 'brookhong/cscope.vim'
Plug 'scrooloose/nerdtree'
Plug 'valloric/youcompleteme'
Plug 'scrooloose/nerdcommenter'
Plug 'raimondi/delimitmate'
Plug 'joshdick/onedark.vim'
Plug 'majutsushi/tagbar'
call plug#end()
set g:tagbar_ctags_bin='/home/ubuntu/.vim/plugged/ctags.vim/plugin/ctags.vim'
"set background=light
":colorscheme space_vim_theme
colorscheme onedark
hi comment ctermfg =yellow
g:onedark_terminal_italics=1
let g:molokai_original = 1
"let g:rehash256=1
"let g:molokai_original=1
"""""""""""delimitMate自动三行缩进************"
let delimitMate_expand_space = 1
let delimitMate_expand_cr = 1
"
"
"""""""""'''NERDTree""""""""""""""
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>
"""""""""""""编译/运行""""""""""""
nnoremap <F5> <Esc>:w<CR>:!g++ -std=c++14 % -o /tmp/a.out && /tmp/a.out<CR>
nnoremap <F7> <Esc>:w<CR>:!g++ -std=c++14 %<CR>
nnoremap <C-F5> <Esc>:w<CR>:!g++ -std=c++14 -g % -o /tmp/a.out && gdb /tmp/a.out<CR>
""""""'''''''Tab''''''''''''''''''
noremap <C-L> <Esc>:tabnext<CR>
noremap <C-H> <Esc>:tabprevious<CR>
nmap <F12> :TagbarToggle<CR>
set cscopetag
.vimrc
主要是一些插件的安装,还有就是配色,配色特别的喜欢,以下为界面:
用vim的时候其实挺开心的,因为我喜欢敲键盘的那种感觉,而且实验室的配置也很OK(400的键盘,4000的主显示屏+1000多的副显示屏,1w多的主机,3000多的椅子)。但是,这里面也有很多心酸,比如说吧,
- 看原码的时候,v studio有各种函数的跳转,但是为了实现这个功能,花了一些时间找到了cscopetag和ctag两个插件。用起来还ok,但也没有v studio好用嘛,还是IDE香啊;
- 再比如秋招找完了,我想学习下Go语言,想想得对于Go各种补全、提醒啊,心还挺累的;
- 再最后就是,窗口的切换,对于再摸索中的人来说,窗口的切换,也让人好累啊,又是调整窗口的大小,又是水平、竖直排列
- 还有刚开始的时候,文件的创建,文件的列表啊,这些也需要插件。
- 好像摸索了一段时间,感觉功能也ok了,但就是感觉还差点啥,仍旧没能使自己的工作效率变高
- 备战春招,还整这玩意,好累,哈哈哈
- …
因为以上困扰,突然之间,我觉着吧,编译器不就是让你工作效率变高的嘛,为啥要再身边没有大哥的情况下,去搞vim,搞得自己心累,vscode不是也蛮香的嘛;出于这个原因,我把电脑里面的vscode彻彻底底的删了(用过),以下是彻底删除的方法:
彻底删除vscode
完全删除vscode
- 在安装目录中运行uninstall
- 在C:\Users\xxxxx 目录下删除.vscode目录;
- 在C:\Users\xxxxx\AppData\Roaming目录下删除Code目录;
其中:
- C:\Users\xxxxx.vscode:保存插件信息
- C:\Users\xxxxx\AppData\Roaming\Code :保存用户信息和缓存信息;
这样就算是彻底地卸载完了;
vscode运行C++代码
以下是vscode运行C++代码及调试地步骤:
在这里衷心提醒自己一次,以后这种教程类地东西,别再去CSDN上面找教程了,去看官网吧,CSDN上面应该没有这么清晰地教程了。这里地英语也不难,如果实在觉得难,就下一个网易有道词典,开启划线翻译吧。
如果看到这篇文章,希望您去看链接,别看我的,我的只是记录,留给自己看的,我这水平还不够,拜托了。(不想坑人)
注意以下三个文件:
- tasks.json:这个文件知道vscode如何编译代码(Terminal > Configure Default Build Task > g++.exe build active file);
- launch.json:就是调试(按F5)的时候,指导vscdoe运行GDB调试器(Run > Add Configuration>C++ (GDB/LLDB));
- settings.json:文件基本的配置;
- c_cpp_properties.json:不知道什么;
vscode运行Go代码
- 首先需要配置号GOPATH、GOROOT
- 调试代码之前,和C++一样,需要建立一个launch.json文件;
- 自动补齐功能:
- 光标放在函数附近,提示函数原型:这个功能与godef 和godoc 相关,也可用gogetdoc
- 函数签名提醒:这个功能与godef 和godoc 相关,也可用gogetdoc
- Go To Definition:F2,Peek Definition:Alt + F12,Go to References:Shift + F12;
- Build、Lint, and Vet
- Test
用户设置与工作空间设置
VS Code提供两种设置方式:
- 用户设置: 这种方式进行的设置,会应用于该用户打开的所有工程;
- 工作空间设置:工作空间是指使用VS Code打开的某个文件夹,在该文件夹下会创建一个名为
.vscode
的隐藏文件夹,里面包含着仅适用于当前目录的VS Code的设置。工作空间的设置会覆盖用户的设置。
为什么需要设置两种设置方式呢?这是因为在一个大项目中,往往是由多人负责的,每个人的工作习惯不同,因此针对不同的工作目录,有了工作空间的设置;
以下是三种设置的打开方式:
- 特定语言设置:Ctrl + Shift + P > Preferences: Configure language specific settings;
- 用户设置:Ctrl + Shift + P > Preferences: Open User Settings;
- 工作空间设置:Ctrl + Shift + P > Preferences: Open Workspace Settings;
注意:特定语言设置只是 用户设置中的一个子项;
常用插件
在vscode中安装vscodevim插件,这个插件是以下这些插件集成,可以通过json来开启相应功能:
- 游标 Multi-Cursor Mode
- 注释 vim-commentary
- 光标跳转 vim-easymotion,vim-sneak
- 针对于括号、引号的替换、删除操作:vim-surround
- 代码快选取:vim-indent-object
vim-indent-object
- ii :选取同一个缩进级别的代码,比如大括号所有的部分;
- ai: 选取同一级别代码,并且加上前面的大括号
- Ai:选取同一级别代码,并加上前一行和后一行;
vim-easymotion
- Search Character: s
- 搜索单词: w , 从光标位置起,往下在单词之间移动光标
- b, 从光标位置起,往上在单词之间移动光标
- j,往下,行之间跳动
- k,往上,行之间跳动
vim-sneak
因为默认,setting.json中是没有开启vim-sneak的,所以需要先在setting.json中添加vim-sneak:true
-
s : 向前找到第一次出现 char, char, 比如s ml, 就会找到最近的一个ml,然后按 ”;“可以实现跳转;
-
S : 与上一样,只是这里是往上进行跳转
vim-commentary
- gc : // 注释
- gcc:注释当前行
- 视图模式下,选择注释块,然后gc,注释所选
- gc2j,注释当前行和下面2行 《j表示下, k表示上》
- gC :/* */注释
- gCi注释当前大括号内的所有行
vim-surround
- d s : 删除光标最近相同的字符, 比如:两端的{},[],”“, ‘’
- c s :改变两边的字符,比如将 ”“ 改为’’
Vscode tricks
- gd : 跳转到函数定义的地方
- Ctrl + O : 与gd相反,返回;
- gh:显示函数签名
sftp插件;
- 这个插件主要负责与服务端,代码的同步;
- 需要注意的是,.vscode中的sftp.json应该目录,也就是说,如果我同步服务器中~/nginx,那么我在本地建立一个nginx文件,在该文件下,存在.vscode文件;
有需要就来这里!!!!
-
g t 在文件之间切换, 向前切换
-
g T 在文件之间切换,向后切换
-
Ctrl + e 或 Ctrl + p类似于vim中NERDTree功能,能在文件编辑于Explore之间跳转
-
d b 删除光标后面的单词
-
d e 删除光标前面的单词
-
Ctrl + B: 取消左侧的Tag栏目
-
w
移动光标到下一个单词的词首,b
移动光标到上一个单词的词首;e
移动光标到下一个单词的结尾,ge
移动光标到上一个单词的结尾 -
%在括号之间跳转
形成自己的键位映射
《空缺》