vim
1.多行注释
(以下方法可以在多行的每一行前面加入相同内容)
Ctrl-v进入visual block模式;调整选择块;按I(大写的i);输入要加的字符;按esc,等待几秒
2.多行缩进
①用多行注释相同方法
②可视模式下按shift+<(减少缩进)或者shift+>(增加缩进)
③:l,r> 或 :l,r< l,r为需要调整缩进的行区间,可以一次性增/删多个tab
3.???
可以在进入vim之前ulimit -s unlimited,这样在vim里面:!开头运行的程序栈空间都无限制(对于gnome-terminal出来的没用)
4.替换
选区替换就是:'<,'>s/AAA/BBB/g(这是把选区所在行内所有AAA替换成BBB)
如果只要把选区内AAA替换成BBB,就要是:'<,'>s/\%VAAA/BBB/g
getterm
1 #!/bin/bash 2 gnome-terminal --geometry=85x35 --zoom=1.2 --working-directory=$HOME/Desktop
makenewcpp
1 #!/bin/bash 2 cp ~/.template1.cpp $1
.template1.cpp
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 using namespace std; 6 #define fi first 7 #define se second 8 #define mp make_pair 9 #define pb push_back 10 typedef long long ll; 11 typedef unsigned long long ull; 12 typedef pair<int,int> pii; 13 14 int main() 15 { 16 return 0; 17 }
.vimrc
set shiftwidth=4 set tabstop=4 set softtabstop=4 " 自动缩进 set nu" 行号,用set nonu撤销 set mouse=a" 可以使用鼠标,用set mouse=撤销 set hls" 搜索高亮,用:set nohls撤销 filetype indent plugin on" 依文件类型设置自动缩进 map! <F9> <esc>:update<CR>:call C()<CR><CR> " !:插入和命令行;update应该是保存吧? map <F9> :update<CR>:call C()<CR><CR> " 普通、可视、选择和操作符等待 func! C() exec "!g++ -Wextra -Wall -g -std=gnu++17 -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined -ftrapv -fdiagnostics-color=always -static-libstdc++ -static-libgcc % -o %<.out 2>&1 | less -r" endfunc map! <F10> <esc>:call R()<CR><CR> map <F10> :call R()<CR><CR> func! R() exec "!gnome-terminal -e "/bin/bash -c '( time ./%<.out ) ; read'"" endfunc set cin" set cindent " 剪贴板:如果--version内+clipboard,则使用v选定后使用命令"+y/"+p " 如果不可以,则做必要的操作后,在插入模式下用shift+ctrl+c/v " set showmatch"高亮显示对应的括号 " set showcmd" 命令行显示输入的命令 " set showmode" 命令行显示vim当前模式 " set backspace=2" more powerful backspacing " set autoindent " syntax on"语法高亮 " set ai"自动对齐 " set scrolloff=3" 光标移动到buffer的顶部和底部时保持3行距离 " set cursorline" 高亮当前行 " set wildmenu" 增强模式中的命令行自动完成操作 " set nocp" 非兼容模式 " map! ` <esc>" 用`代替<esc>
.vimrc(noi linux)
1 set cin" set cindent 2 set shiftwidth=4 3 set tabstop=4 4 set softtabstop=4 5 " 自动缩进 6 set nu" 行号,用set nonu撤销 7 set mouse=a" 可以使用鼠标,用set mouse=撤销 8 set hls" 搜索高亮,用:set nohls撤销 9 10 11 map! <F9> <esc>:update<CR>:call C()<CR><CR> 12 " !:插入和命令行;update应该是保存吧? 13 map <F9> :update<CR>:call C()<CR><CR> 14 " 普通、可视、选择和操作符等待 15 func! C() 16 exec "!g++ -Wextra -Wall -g -std=gnu++1y -fno-omit-frame-pointer -fsanitize=address -ftrapv % -o %<.out 2>&1 | less -r" 17 endfunc 18 19 map! <F10> <esc>:call R()<CR><CR> 20 map <F10> :call R()<CR><CR> 21 func! R() 22 exec "!gnome-terminal -e "/bin/bash -c '( time ./%<.out ) ; read'"" 23 endfunc 24 25 26 " 剪贴板:如果--version内+clipboard,则使用v选定后使用命令"+y/"+p 27 " 如果不可以,则做必要的操作后,在插入模式下用shift+ctrl+c/v 28 " set showmatch"高亮显示对应的括号 29 " set showcmd" 命令行显示输入的命令 30 " set showmode" 命令行显示vim当前模式 31 " set backspace=2" more powerful backspacing 32 " set autoindent 33 " syntax on"语法高亮 34 " set ai"自动对齐 35 " set scrolloff=3" 光标移动到buffer的顶部和底部时保持3行距离 36 " set cursorline" 高亮当前行 37 " set wildmenu" 增强模式中的命令行自动完成操作 38 " set nocp" 非兼容模式 39 " map! ` <esc>" 用`代替<esc> 40 " F10可能需要在终端中点击“编辑”“快捷键”,关闭跳出菜单中F10
gdb
加载文件可以用gdb <filename>打开gdb,或进入gdb后file <filename>
p(print) <expr> 输出<expr>的值
display <expr> 每一次停下来都会输出<expr>的值;用undisplay <displaynum>(是一个编号,display时候可以看到)取消
b <linenumber> 加断点;用d(delete) <breakpointnumber>(是一个编号,info b可以看到)取消
run 开始运行程序
info locals 查看局部变量
continue 执行到下一断点或程序结束
next 下一步,不进入函数内部;step 下一步,进入函数内部
bt(backtrace) 查看堆栈
focus 可以显示一个代码小窗口(好像不好用)
finish 运行到函数结束
disassemble 看汇编;后面加一个/m可以汇编和程序对照
linux桌面
ctrl+alt+方向键 切换工作区
shift+ctrl+alt+方向键 切换工作区,并移动当前窗口到目标工作区
进noilinux之后需要将~目录下的.viminfo更名