V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sl0000
V2EX  ›  C++

吐槽一下 Visual Studio 2022

  •  
  •   sl0000 · 2023-03-15 22:43:53 +08:00 · 5867 次点击
    这是一个创建于 647 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为了学习游戏开发, 从 macOS 转到 Win 平台, 这几天用 Visual Studio 2022 深度开发, 总是被各种莫名其妙的东西打断. 首先是主题设置, 我想改个黑色背景, 然后问题就出来了.

    1. 字体是黑色的看不到, 于是我需要把所有的字体颜色选项过一遍: 是黑色?改白色->下一个:下一个. 列表至少上百个选项要过一遍吧.
    2. 快捷键修改, Visual Studio 的默认快捷键真是人用的吗? 一堆组合键学 Emacs 呢? 那我为什么不直接用 Emacs, 改了快捷键用了一段时间, 快进到打算删除所有快捷键, 只在需要的地方加快捷键. 然后你看几千个快捷键需要手动清空.
    3. 自动补全, 乱补瞎跳. 补全前要回车, 然后什么括号自动补全. 设置关了开了也没用. “lock(“自动给我补了一个 Lockfile, 满脑的问号.

    这就好像你去饭馆, 要米饭, 老板答, 米, 水, 电饭锅都在那里, 请自便; 点菜, 每点一道菜, 老板都要问你辣度咸度油度.

    仔细看了一下改字体, 它针对各种语言做出区分, 但其实颜色和大小其实有很多可以抽象的地方. 像类名方法这种基本上不同语言都有的, 可以采用继承模式, 我设置一个 base class font, 支持的就继承, 不支持的就自定义, 这种配置上百个的列表手动设定工作量减少一大半没问题吧.

    快捷键配置你看看列表长度真的是地狱模式. 我只需要一键清空所有配置. 功能性的, 使用频率统计一下, 对应的快捷键根据频率排序一下显示让我设置即可. 编辑器的, 直接问人是 Emacs/Vim/新人, 还是不要荼毒新人了.

    自动补全, 有 Bug, 设置感觉过于复杂. 基于 Xcode 问题也不少, 不评价.

    也许有大佬 VS 玩得贼溜的, 可以指导指导, 其他人, 我反正是不用来写代码了, 最多把文件拖过来编译.

    30 条回复    2023-03-18 18:49:55 +08:00
    pocarisweat
        1
    pocarisweat  
       2023-03-15 22:54:38 +08:00
    1. VS 可以安装特定主题的吧,用不着自己设置每个字体的颜色
    2. 快捷键确实离谱,不过应该可以像 vscode 一样设置整套的 key binding ?
    3. 这玩意只能当做一个丐中丐版的 copilot
    xmoer
        2
    xmoer  
       2023-03-15 22:55:51 +08:00   ❤️ 1
    工具>>主题,有自带浅色和深色主题,不需要你手工改背景改字体颜色。

    我觉得 VS 2022 最大的问题就是莫名其妙的吃内存,内存占用空前提升。国外很多人说是 BUG ,或者内存溢出,也可能是首个纯 64 位版本它的调试器有问题。
    tool2d
        3
    tool2d  
       2023-03-15 23:07:31 +08:00
    2023 年了,编译 c++有无数种方法,我一般也不怎么用 vs2022 ,因为缺少一些提高效率的插件,IDE 用着不顺手啊。

    但是调试代码,还是只能用 vs2022 。
    Katrol
        4
    Katrol  
       2023-03-15 23:15:53 +08:00
    可以用 Rider
    MMMMMMMMMMMMMMMM
        5
    MMMMMMMMMMMMMMMM  
       2023-03-15 23:18:57 +08:00
    vs 把编译链接选项拆成一个一个选项式的 gui 下拉框是真的地狱
    网上查出来的别人或者 chatgpt 的回答,都是给你 command line ,你还得倒过来一个个去他 gui 里找对应的参数配置在哪

    替代方案也不是没有:
    c2+ cmake+vcpkg+你喜欢的任意编辑器,只用知名 lib 的话 conan 、xmake 也能省一些时间
    c4+ 不太了解,上 jb 的 rider ?
    levelworm
        6
    levelworm  
       2023-03-15 23:20:07 +08:00 via Android
    快捷键只能适应和自己修改。自动补全我倒觉得还不错,至少比 VSCode 上面任何一种都好多了,但是问题是启动慢好像时灵时不灵的样子。
    Mithril
        7
    Mithril  
       2023-03-15 23:22:00 +08:00
    只是编译的话,装个 build tool 就够了,用不着装 Visual Studio 。

    能被这么多人认为是宇宙第一 IDE ,主要还是因为调试功能强大。但至少对我来说,设置足够方便也是原因之一。你想到的地方可以改,想不到的地方你觉得可能可以改的也可以改。

    如果你觉得整套配置好的快捷键设置就够用的话,可以直接找套合适的配置导入进去就行。而且我没记错的话默认也可以在几套里面选的。

    毕竟都是做软件开发的,你应该明白“可定制程度高”和“简洁舒适易用”在一定程度上是互斥的。特别是有些人从九几年就开始用这套玩意,你让他直接换套新的快捷键几乎是不可能的。
    KgM4gLtF0shViDH3
        8
    KgM4gLtF0shViDH3  
       2023-03-15 23:25:48 +08:00
    最大的问题是 copilot 插件安装了用不了。
    invalid
        9
    invalid  
       2023-03-15 23:29:27 +08:00 via Android
    游戏开发我觉得 rider 和 vs2019 比较好用
    fengjianxinghun
        10
    fengjianxinghun  
       2023-03-16 00:44:33 +08:00
    @bestkayle 能用,我一直在用,要全局翻墙
    lightjiao
        11
    lightjiao  
       2023-03-16 01:14:08 +08:00   ❤️ 1
    Unity 游戏开发一枚,日常使用 VS2022 写 C# ,内存占用低,debug 体验好(有效性与准确性),大文件分析速度快,没有装任何 Extension
    1. 主题我一直用默认的 dark ,不太熟其他的
    2. 快捷键直接支持改 keymap ,我都改成 vscode 的 keymap 的
    3. 自动补全我目前觉得是刚好能用,不至于 codpilot 那样烦,也不至于提示得完全不对,主要是 “采取” 与 “不采取” 的操作都方便

    我觉得有一些其他体验不如 rider:
    1. debug 想把变量以 json 的形式序列化,很麻烦,得要手动在命令行里敲代码
    2. 没有内置 IL viewer
    3. 一些操作提示的效果不如 rider 明显、方便
    4. 窗口的悬停与布局总是很迷,至今都没有很懂
    ShineyWang
        12
    ShineyWang  
       2023-03-16 01:26:57 +08:00 via Android   ❤️ 1
    @lightjiao debug 强推 ozcode 这个插件支持数据导出
    cnbatch
        13
    cnbatch  
       2023-03-16 02:48:52 +08:00   ❤️ 1
    我一直都不喜欢黑色主题,无论是 VS 还是 VSC 还是其他软件包括系统本身,看久了总觉得文字残影暂留在视网膜,转头看其他地方就觉得很不舒服。
    可能是因为我喜欢整个房间都亮着,这种情况把屏幕调得暗成黑板或多或少都会造成视觉不适。
    于是一直没遇到过颜色问题。

    不过我也试过调成其他颜色模式,例如设成“深色”,并不会出现“改个黑色背景,字体是黑色的看不到”这种怪事,都是自动变成黑底亮字。

    至于快捷键,它设在那就随它去吧,反正用来用去也就几个:
    编译当前项目(CTRL+B)
    编译整个大项目(CTRL+Shift+B)
    自动排版(CTRL+SHIFT+K & F)
    代码变注释(CTRL+SHIFT+K & C)
    取消注释(CTRL+SHIFT+K & U)

    然后还有调试功能的 F5 ,以及立即编译并执行但不调试(CTRL+F5)。

    因为这几个很常用而其他很不常用,于是我就只记得住这几个,其他的组合快捷键从来记不住( CTRL+Home CTRL+End CTRL+Delete CTRL+PageUp CTRL+PageDown CTRL+A CTRL+C CTRL+V CTRL+X CTRL+Z CTRL+Y 这些不算数),懒得记,都是鼠标直接点菜单。

    反正我觉得对于记不住的快捷键完全没必要理会,当作不存在就好,毕竟可以直接鼠标点菜单。手动去取消掉完全是浪费时间。任何编辑器和 IDE 我都是这样对待的,懒得给自己增添麻烦。

    自动补全除了按回车,其实也可以用 TAB ,方向键选好需要的条目直接 TAB 就行。
    除了小括号自动补全,选中一堆字然后按一下括号,自动给这堆字左右两侧添括号。这个功能是全新的,VS2019 及之前的版本都不会这样,我也还没习惯。

    相比旧版本 Visual Studio ,我觉得 VS2022 最方便的是标签栏自动换行,打开的文件多了,切换起来很方便。
    sl0000
        14
    sl0000  
    OP
       2023-03-16 06:38:21 +08:00
    @cnbatch 黑底白字对比度太高, ips 屏幕看起来确实很不舒服

    我一般用屎色背景, 自带主题几乎没有这个颜色, 大概就是这几种颜色#ccd5ae #e9edc9 #fdf5c4 #f9ebc7
    https://coolors.co/ccd5ae-e9edc9-fdf5c4-f9ebc7
    klo424
        15
    klo424  
       2023-03-16 08:37:21 +08:00   ❤️ 1
    11 年 C# 老 coder 表示,vs 我只装了 resharper 插件,其余基本都是默认配置,就这样用了 11 年吧!换别的 IDE 我还真用不惯,vscode 我都不爱用,只用它搞搞前端代码,谢谢文档之类的,更别提别家的产品了,那叫一个别手。
    missdeer
        16
    missdeer  
       2023-03-16 09:13:31 +08:00
    vs 写 C++一定要装 vax 插件
    另外,如果不是刚需调试器的话,不需要用 vs ,vscode+clangd 用得爽多了,其中 vscode 可以替换成任何支持 lsp 的代码编辑器,比如 Kate ,vim 等等
    MCVector
        17
    MCVector  
       2023-03-16 09:13:39 +08:00
    @lightjiao Unity 和 VS 确实配合的挺好的。VS 调试应该是业界最好用的了。另外加上 Resharper 插件就更好用了。
    idragonet
        18
    idragonet  
       2023-03-16 09:21:33 +08:00
    @klo424 #15 是的,VS2022+ReSharper YYDS!
    idealhs
        19
    idealhs  
       2023-03-16 09:28:11 +08:00   ❤️ 1
    @lightjiao 这次的更新,Text Visualizer 可以解很多东西了,甚至 base64 ,你试试 json 是不是被 format 了
    chrawsl
        20
    chrawsl  
       2023-03-16 09:44:03 +08:00
    @bestkayle 我的反正可以用,配了个流量规则
    KgM4gLtF0shViDH3
        21
    KgM4gLtF0shViDH3  
       2023-03-16 09:45:34 +08:00
    @fengjianxinghun 但是 vscode 和 jetbrains 的 copilot 可以不翻墙或者用规则翻墙。还好的是 vs2022 的提示能力比之前强了不少。
    changnet
        22
    changnet  
       2023-03-16 09:46:19 +08:00
    若不是 dmp 文件必须要用 VS 来调试,我都不想用 VS 。用 MinGW 、MSYS 之类的也可以编译 C++,但唯独调试这一块搞不定,QtCreator 也不认 dmp 文件
    chengxiao
        23
    chengxiao  
       2023-03-16 09:49:03 +08:00
    gui 这种东西,设计不好就是各种反向操作
    各种软路由上的 gui docker..看的我一愣一愣的 你让我用命令行肯定比这繁琐的 gui 要简单多了
    Chad0000
        24
    Chad0000  
       2023-03-16 09:56:43 +08:00 via iPhone
    @klo424
    17 年老 C#表示,我连 reshaper 都没有安装。只有 vs 就够了。vs 后端,vscode 前端。目前够用。
    404neko
        25
    404neko  
       2023-03-16 10:00:13 +08:00   ❤️ 1
    那我建议别用了
    我自己用 CMake + VSCode
    fengjianxinghun
        26
    fengjianxinghun  
       2023-03-16 10:15:44 +08:00
    @lightjiao 我是 unity2018.4 配合 vs2022 + copilot + shaderLabs + Unity 扩展
    lightjiao
        27
    lightjiao  
       2023-03-16 14:59:28 +08:00 via iPhone
    @idealhs
    我查了一下 text visualizer ,我的需求不是对某个字符串解析,我的需求是看对象的时候,想把整个对象(或者对象列表、字典) json 化,这对于查看数据很方便
    sloknyyz
        28
    sloknyyz  
       2023-03-16 20:48:33 +08:00
    vs 是编译器+调试器,不是编辑器。
    sl0000
        29
    sl0000  
    OP
       2023-03-17 22:19:24 +08:00
    @sloknyyz 是, 我就是打算用来编译和调试, 项目模板文件就是 vs 的.

    下了 DoomEmacs, 在学配置, 快捷键统一用来了很爽. 话说再过 10 年, Win 能让我直接修改默认快捷键么? 算了, 不强插快捷键就不错了, Xbox bar 这个玩意拦截了好几个快捷键, 然后修改列表居然缺一个 alt+win+w 的设置, 改都改不了.
    smallthing
        30
    smallthing  
       2023-03-18 18:49:55 +08:00
    @lightjiao 1 已经有了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2829 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:16 · PVG 20:16 · LAX 04:16 · JFK 07:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.