我开始用 Neovim 来开发了

一直以来,我都感觉传统编辑器鼠标和键盘的频繁切换的体验让我无法接受,它让编程这件事情拆分成了两个系统:输入和移动。我一直有将他们统一的冲动,但又受限于 vim 学习成本过高的固有认知一直没有行动。它像一根若有若无的刺一直刺痛着我,直到有一天我接触到了 lazyvim,我想也许是时候改变了。 lazyvim 可以极大程度降低了配置难度,可以在不进行任何配置的情况下拥有一个轻量级的代码编辑器。 我切换 Neovim 除了 lazyvim 降低了配置成本还有另一个原因:我认为自己还会有相当长的时间开发相关的活动,一个高度可定制的编辑器,可以让我随心所欲的打造一个称手的工具。 关于配置我使用的是 https://github.com/craftzdog/dotfiles-public 并在此基础上扩充了 PHP 开发相关的配置。在文章底部我会贴出自己的 dotfile 仓库,目前我的配置可以用于 VUE、PHP、GO 的开发,如果需要可以自取。 在开发之前我们还是需要对 Neovim 基础操作有一定的了解,这里介绍一下我的学习方式。 我是通过 https://lazyvim-ambitious-devs.phillips.codes/ 一书建立的最初的基本只是,后续又看了一些视频加深我对 Neovim 的理解。 在视频学习的过程中,可以很好的学习资深的 vimer 是如何进行 vim 操作的,拿来主义可以省去很多自己探索的精力。最开始只需要模仿就可以了,等你对 vim 使用熟练后你会有自己的想法,那时自然而然的会形成自己独有的操作方式。 视频的学习我参考了 craftzdog 比较多,在 B 站上也学习了其他人的一些操作技巧。 Neovim 的学习成本也没有想象中那个高,正常下来,一周你就可以比较得心应手的进行开 发了。 得益于 LSP 的技术,让 Neovim 对开发语言的支持和 Vs code 并没什么本质的差别。 Vs code 对语言的支持也是通过 LSP 来实现的。 Neovim 带来了什么?它确实能使我整个开发的工作流完全脱离了鼠标,所有开发的工作包括但不限于代码编写、函数跳转、以及 git 的提交等全部都可以脱离鼠标完成,双手不需要离开键盘区域就可以完成编程所需要的操作。 此外像文件操作:打开、删除、重命名等操作,Neovim 也可以很方便的操作。它确实让我更专注了,所有的操作都没有任何的打断,我不需要频繁的把手离开键盘做一些额外的鼠标操作。 上文说到,Neovim 可定制化程度更更高,理论上你能按照你的习惯去配置 Neovim 来使它与你配合的更默契。 Neovim 会不会对开发效率带来一定的提升?从我目前的使用程度来看,它并不能带来明显的开发效率的提升,Neovim 在一些操作上的确更有优势,但是也有一些操作没有 GUI 更加的高效。总的看来我觉得它的开发效率和 Vs code 差不多。...

October 26, 2024 · 1 min · 云溪

vs code 调试远程代码

简介 Visual Studio Code Remote - SSH 可以打开远程计算机或容器中的文件(计算机或容器中需要运行 SSH Server),而且可已充分利用 VS Code 的一切特性.一旦连接上服务器,可以与任意位置的文件进行交 由于 Remote-SSH 扩展运行命令行和其他扩展是在远程主机上,因此本地不需要代码,就可以正常运行. 入门 确保本机已经安装 VS CODE 确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server 为本机 VS CODE 安装 Remote Development 扩展 连接远程主机 连接配置 Ctrl + Shift + p 输入 Configure SSH Hosts... 回车,设置远程主机信息,配置信息如下 # Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host oa-online HostName 远程主机Ip User root Host 远程主机名称 HostName 远程主机IP User 连接用户名 用户名密码连接 在配置文件 settings.json 加入 "remote.SSH.showLoginTerminal": true...

June 19, 2019 · 1 min · 云溪

VS Code golang debug 配置

实现效果 安装 delve windows go get -u github.com/go-delve/delve/cmd/dlv linux 方式一: go get -u github.com/go-delve/delve/cmd/dlv 方式二 $ git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve $ cd $GOPATH/src/github.com/go-delve/delve $ make install 注意: 若果你go版本为1.5需要设置GO15VENDOREXPERIMENT=1 OSX $ go get -u github.com/go-delve/delve/cmd/dlv 执行上述代码前,确保你电脑上有编译工具 设置 launch.json 配置文件 ctrl+shift+p 输入 Debug: Open launch.json 打开 launch.json 文件,如果第一次打开,会新建一个配置文件,默认配置内容如下 { "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", "env": {}, "args": [] } ] } 常见属性如下...

March 25, 2019 · 2 min · 云溪

vscode 自定义代码片段

实现效果 起因 最近在写一个全新的项目,在项目中频繁创建各种类,这就导致很多重复的东西需要频繁的写,例如类名,命名空间,继承关系…那么有没有一种 办法能解决这个问题呢? 提出设想 我想起了,最初用 sublime text 的时候,可以利用代码片段功能大段的生成html代码,当时就觉得十分的方便,那么 vscode 有没有这个功能呢?经过 google 之后我知道 vscode 是有代码片段功能的。既然有了想法,也具备了基础实施条件,那么接下来开始尝试实现之前的想法。 资料查询 经过一番 google 后发现对于 vscode snippet 介绍都在相对基础的简单应用(只是一些插入固定代码和光标介绍),者显然无法实现我们生成类名和明明空间的想法,google 无果,那么只能看看 vscode 官方文档果然有意想不到的收获,看完官网介绍后,基本就确定此路是可行的。 snippet 示例 在 File > Preferences (Code > Preferences on macOS) 中选择 User Snippets 在弹出框里选择对应的代码片段语言,我这里使用的是php "Print to console": { "prefix": "log", "body": [ "console.log('$1');", "$2" ], "description": "Log output to console" } 在打开的 php.json 中有示例代码: Print to console 代码片段名称 prefix 插件前缀 body 插件内容可以是字符串,也可以为数组,若为数组每个元素都做为单独的一行插入。 description 插件描述 Snippet 语法 制表位(Tabstops) 使用制表位(Tabstops)可是在代码片段中移动光标位置,使用$1,$2来指定光标的位置,数字代表光标的移动的顺序,值得注意的时$0代表光标的最后位置。如果有多个相同的制表位(Tabstops)会在编译器里同时出现多个光标(类似编译器的块编辑模式)。...

March 9, 2019 · 2 min · 云溪