linux 上安装 vscode

以CentOS 7为例

一、安装

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
$ sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
$ sudo yum check-update
$ sudo yum install code
(参考: https://code.visualstudio.com/docs/setup/linux )

二、修复无法跳转的问题

cd ~/.vscode/extensions/ms-vscode.cpptools-0.12.1/bin 然后 ldd ldd Microsoft.VSCode.CPP.Extension.linux 提示错误:version `GLIBC_2.18' not found 

原来是CentOS 7的glibc版本太低的缘故(2.17)。所以需要安装 glibc 2.18。

1. 安装 glibc 2.18

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.xz
tar xvf glibc-2.18.tar.xz
cd glibc-2.18;mkdir build;cd build
../configure --prefix=/opt/glibc-2.18/
make -j
su
make install

2. 在 ~/.vscode/extensions/ms-vscode.cpptools-0.12.1/bin 下创建一个脚本文件 Microsoft.VSCode.CPP.Extension.linux.sh,内容为:

#!/bin/bash

/opt/glibc-2.18/lib/ld-linux-x86-64.so.2 --library-path /opt/glibc-2.18/lib:/lib64 ~/.vscode/extensions/ms-vscode.cpptools-0.12.1/bin/Microsoft.VSCode.CPP.Extension.linux

然后 chmod +x Microsoft.VSCode.CPP.Extension.linux.sh

3. 修改  ~ /.vscode/extensions/ms-vscode.cpptools-0.12.1/out/src/LanguageServer/C_Cpp.js,把 extensionsProcessName += '.linux' 改成 extensionProcessName += '.linux.sh';


参考:

https://github.com/Microsoft/vscode-cpptools/issues/292

https://github.com/Microsoft/vscode-cpptools/issues/19

三、代码格式化问题

1. 快捷键问题

Windows上的快捷键是 Shift+Alt+F, 查了文档 https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf 说Linux上的快捷键是 Ctrl+Shift+L,然而不起效。但右键->格式化代码却可以,所以绑定新的快捷键可以解决问题:

文件->首选项->键盘快捷方式,搜索 format,找到该项,修改为 Shift+Alt+F 即可。

实际上 Ctrl+Shift+L 被绑定给“选择所有匹配项” 了,所以冲突。

2. 按特定选项格式化,有两种方法:

方法1:文件->首选项->设置,在设置项中新加一条 "_clang-format": "/home/cj/.clang-format" 其中/home/cj/.clang-format 为格式化参数文件的路径。(参数文件设置参考这篇博文:http://blog.csdn.net/chenjun15/article/details/75640389后记:发现这条设置无效。之前我产生了起作用的错觉是因为所打开的目录下有一个相同的.clang-format 文件。

按下格式化快捷键时,vscode首先在锁打开的目录下寻找.clang-format文件,如果没找到,则依次顺着父目录网上查找,若一直找到根目录也没找到,则使用 C_Cpp.clang_format_fallbackStyle 指定的风格。

方法2:新加一条 "C_Cpp.clang_format_style": "{ BasedOnStyle: LLVM, AllowShortFunctionsOnASingleLine: None, ColumnLimit: 120, Standard: Cpp11, IndentWidth: 4, TabWidth: 4, UseTab: Always, BreakBeforeBraces: Linux }"

3. 其它

"editor.formatOnType": true,
"editor.formatOnPaste": true
将这两个选项设为 true,则在键入分号 和 粘贴 的时候会格式化。

"editor.detectIndentation": false
设置这项为true, 则打开文件时不检测以空格还是tab对齐,有效避免了将tab显示为2个空格的问题(默认显示为4个)

四. 代码补全

安装 cpptools 和 c/c++ clang command adapter 两个插件就会有较好的补全效果


其它参数参见 https://code.visualstudio.com/docs/languages/cpp


后记-------------------------------

笔者的vscode用户设置如下:

{
    "C_Cpp.clang_format_style": "{ BasedOnStyle: LLVM, AllowShortFunctionsOnASingleLine: Empty, ColumnLimit: 120, Standard: Cpp11, IndentWidth: 4, TabWidth: 4, UseTab: Always, BreakBeforeBraces: Linux, AlwaysBreakTemplateDeclarations: true, SpaceAfterTemplateKeyword: false }",
    "C_Cpp.intelliSenseEngine": "Tag Parser",
    "editor.detectIndentation": false,
    "files.autoSave": "afterDelay",
    "explorer.confirmDragAndDrop": false
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值