常用快捷键
ctrl f:搜索
F12:跳转到函数定义
alt ⬅:返回上一次跳转
ctrl z:撤销
shift ctrl z:撤销之前的撤销
ctrl s:保存
ctrl enter:在光标下插入新行
ctrl shift enter:在光标上插入新行
ctrl g:定位到某行
ctrl shift k:删除当前行
ctrl x:剪切当前行
tab:填入自动补全内容
ctrl shift \:花括号跳转
ctrl home:跳转到文件开始
ctrl end:跳转到文件末尾
ctrl w:关闭当前标签页
ctrl k w:关闭所有标签页
ctrl `: 打开内置shell
ctrl k 0:折叠所有函数
ctrl k j:展开所有函数
settings.json配置
VSCode:Settings Reference for Python
1.解决#ifdef区域变灰
"C_Cpp.dimInactiveRegions": false
2.默认启动其他虚拟环境
"python.pythonPath": "/home/dfzhang/anaconda3/envs/mlu/bin/python"
3.默认进入其他文件目录
"terminal.integrated.cwd": "/home/dfzhang/project/onnxinfer/tests"
4.默认启动其他shell
"terminal.integrated.shell.linux": "/usr/bin/zsh"
5.文字大小
"editor.fontSize": 18
launch.json配置
官方文档:launch.json配置
选择右下角的Add Configuration,会在左上角弹出选择框,选择gdb launch,会生成默认gdb配置
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",#调试下拉按钮会展示的名称
"type": "cppdbg",
"request": "launch",
"program": "enter program name, for example ${workspaceFolder}/a.out",
#调试程序的路径,包括程序名称本身
"args": [],#程序需要的参数,双引号括住参数,用逗号隔开
"stopAtEntry": false,#是否在main函数处停止
"cwd": "${fileDirname}",#程序认为的当前文件目录
"environment": [],
#程序传入的环境变量,格式是[{"name":" ", "value":" "}],其中name是环境变量的名称,value是环境变量的值
"externalConsole": false,#是否会在新的终端展示结果
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
除了默认的配置之外,还提供了其他配置
1.调试默认进入的文件目录
"cwd": "${workspaceFolder}/onnxinfer/tests"
#2.调试启动的虚拟环境
#"python": "/home/dfzhang/anaconda3/envs/mlu/bin/python"
3.添加python参数
"args": ["--folder", "/home/dfzhang/file",
"--config", "/home/dfzhang/config"]
4.preLaunchTask表示程序执行前会执行的task名称,该task是在task.json文件中定义的
vscode remote ssh设置
连接好之后继续安装插件:C/C++(用于代码跳转), C/C++ Extension Pack(用于调试)
设置自动登入:在本地cmd执行ssh-keygen,一路enter,会在C:\Users\用户\.ssh下生成文件,将公钥id_rsa.pub重命名成authorized_keys,并拷贝到连接的服务器上,路径是~/.ssh/,第二步更改连接config文件
Host 名称
HostName 172.31.x.x
User 用户名称
PreferredAuthentications publickey
IdentityFile "~/.ssh/id_rsa"
连接到服务器的docker
在扩展中搜索docker安装,在左侧边栏最底下会显示docker的图标。
右键点击containers中想连接的容器,选择“附加Visual Studio Code” ,就会新开一个窗口,可以打开容器内的文件夹,并在其中调试程序。选择“Attach Shell”就会在命令行执行连接容器的命令。
调试C++程序
- 首先确定vscode连接到正确的服务器上,如国产化服务器和gpu服务器
- 点击左侧边栏的debug图标,再点击齿轮设置按钮,会跳转到launch.json文件,其中会展示已经有的配置
- 如果没有,则点开下拉按钮,选择"Add Configuration",选择“C++ gdb Launch”
- 配置好之后,设置断点,点击F5即可进入调试
调试Python程序
在添加配置处没有找到合适的Python调试选项,所以自己加配置
{
"name": "fastchat",#调试名称
"type": "python",#类型
"request": "launch",
"stopOnEntry": false,
"python": "/root/miniconda3/envs/lewis/bin/python",#python解释器位置,这里是conda环境
"program": "test_openai_api.py",#调试文件名称
"cwd": "/data/lewis.zhang/project/triton/FastChat/tests",#当前路径
"args": [ #运行参数,所有参数都得用双引号,中间不能有空格,即不能将所有参数用一个双引号
"-m",
"fastchat.serve.model_worker",
"--model-path",
"lmsys/vicuna-7b-v1.5"
],
"env": {},
"envFile": "${workspaceRoot}/.env",
"redirectOutput": true
}
如果是调试模块,即类似python3 -m fastchat.serve.cli --model-path lmsys/vicuna-7b-v1.5,选择添加配置中的Python-模块配置,会自动生成一些模块的调试配置,但是有的内容还是需要自己调整。
{
"name": "模块fastchat",#名称
"type": "python",
"request": "launch",
"module": "fastchat.serve.cli",#调试模块
"python": "/root/miniconda3/envs/lewis/bin/python",#python解释器路径
"cwd": "/data/lewis.zhang/project/triton/FastChat/tests",
"args": [
"--model-path",
"lmsys/vicuna-7b-v1.5"
],
"justMyCode": true
},
如何在调试中进入到安装的python包?
首先在底下的python解释器中选择正确的python路径
其次在launch.json文件中的python调试中加入参数"justMyCode": false,这样就可以在python包中设置断点了。
调试Bash程序
在商店中下载Bash Debug,在launch.json中添加
{
"type":"bashdb",
"request": "launch",
"name": "deep_speed",
"program": "examples_deepspeed/generate_test.sh",
"cwd": "/data/project/moe/Megatron-DeepSpeed/",
}
timeline不显示本地文件修改记录
vscode默认是显示本地文件修改记录的,点击右上角的筛选按钮可以取消。
mac快捷键
ctrl 1/2/2 #切换到1/2/3号窗口
command 点击 #转到定义
ctrl - #回到定义
command k 0 #折叠所有函数
command k j #展开所有函数
command z #撤销之前的操作
command shift z #撤销之前的撤销
如何更改快捷键
进入到快捷键界面,有个根据录入快捷键定位到动作的功能,比如录入ctrl+1,会显示workbench.action.openEditorAtIndex1,然后点击编辑,重新录入即可
如何设置代理
在下载商店的扩展时,有的时候会因为网速的原因导致下载速度很慢,这个时候可以设置代理。
打开设置,因为是想在远程服务器的docker中安装,所以选择docker-应用程序-代理服务器。
新建用户之后用vscode连接不上的问题
#创建用户之后,ssh能连接,但是vscode不能连接,这是vscode不能在~/.vscode-server下面写文件的错误
sudo chmod 777 ~/.vscode-server
恢复vscode布局
之前误操作,把资源管理器图标拖进源代码管理器了,就算拖回来原本的时间线界面还是在源代码管理器的位置,所以想到恢复布局。使用ctrl p或者shift command p打开命令面板,输入重置,选择重置视图位置(workbench.action.resetViewLocations)就可以恢复了。
如何使用vscode上传代码
如何不做任何设置的话,通过vscode上传代码,会等待很长时间之后报错:未能对 git remote 进行身份验证。
如果当初下载gitlab的代码我们是通过https的方式,不是git加密网址的方式,就需要为仓库添加access token。
点击gitlab右上角头像 - Preferences。token name随便填一个,失效日期可以选择几年以后,选择api之后,点击创建。
得到access token之后,进入到你的仓库,假设当时下载的网址是http://gitlab.tools.com/llms/triton.git。执行下面的命令
git remote set-url origin http://oauth2:glpat-@gitlab.tools.com/llms/triton.git
#其中glpat-是access token
git remote set-url origin http://oauth2:ACCESS_TOKEN@gitlab.com/你的用户名/仓库名.git
之后就可以直接执行git push了,在vscode中也可以直接提交了。