吐槽一下 Visual Studio 2022 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sl0000
V2EX    C++

吐槽一下 Visual Studio 2022

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

    为了学习游戏开发, 从 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 要简单多了
    ktqFDx9m2Bvfq3y4
        24
    ktqFDx9m2Bvfq3y4  
       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     Solana     859 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 21:41 PVG 05:41 LAX 14:41 JFK 17:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86