<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>工欲善其事，必先利其器 on 云溪的 blog</title>
    <link>https://www.yunxicoding.top/tags/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/</link>
    <description>Recent content in 工欲善其事，必先利其器 on 云溪的 blog</description>
    <image>
      <title>云溪的 blog</title>
      <url>https://www.yunxicoding.top/papermod-cover.png</url>
      <link>https://www.yunxicoding.top/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Sat, 26 Oct 2024 16:03:35 +0800</lastBuildDate><atom:link href="https://www.yunxicoding.top/tags/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>我开始用 Neovim 来开发了</title>
      <link>https://www.yunxicoding.top/post/ide/nvim/</link>
      <pubDate>Sat, 26 Oct 2024 16:03:35 +0800</pubDate>
      
      <guid>https://www.yunxicoding.top/post/ide/nvim/</guid>
      <description>一直以来，我都感觉传统编辑器鼠标和键盘的频繁切换的体验让我无法接受，它让编程这件事情拆分成了两个系统：输入和移动。我一直有将他们统一的冲动，但又受限于 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 差不多。</description>
    </item>
    
    <item>
      <title>vs code 调试远程代码</title>
      <link>https://www.yunxicoding.top/post/ide/vs-code/remote-ssh/</link>
      <pubDate>Wed, 19 Jun 2019 20:31:23 +0800</pubDate>
      
      <guid>https://www.yunxicoding.top/post/ide/vs-code/remote-ssh/</guid>
      <description>简介 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 加入 &amp;quot;remote.SSH.showLoginTerminal&amp;quot;: true</description>
    </item>
    
    <item>
      <title>vim-plug 安装</title>
      <link>https://www.yunxicoding.top/post/ide/vim/vim-plug-install/</link>
      <pubDate>Sun, 21 Apr 2019 07:33:57 +0800</pubDate>
      
      <guid>https://www.yunxicoding.top/post/ide/vim/vim-plug-install/</guid>
      <description>vim-plug 是一个极简的 vim 插件管理器
安装 vim-plug 的安装十分简单只需要一行命令就可以搞定
vim Linux curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim Windows (PowerShell) md ~\vimfiles\autoload$uri = &amp;#39;https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&amp;#39;(New-Object Net.WebClient).DownloadFile($uri,$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(&amp;#34;~\vimfiles\autoload\plug.vim&amp;#34;)) Neovim Linux curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim Windows (PowerShell) md ~\AppData\Local\nvim\autoload$uri = &amp;#39;https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&amp;#39;(New-Object Net.WebClient).DownloadFile($uri,$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(&amp;#34;~\AppData\Local\nvim\autoload\plug.vim&amp;#34;)) 使用 在 vim 配置文件 ~/vimrc 或 Neovim 配置文件 ~/.config/nvim/init.vim 中增加 vim-plug 配置项
开始部分 call plug#begin() Plug 命令用于定义使用的插件列表 结束部分 call plug#end() 更新 &amp;amp;runtimepath 并且初始化插件系统 自动执行 filetype plugin indent on 和 syntax enable.</description>
    </item>
    
    <item>
      <title>VS Code golang debug 配置</title>
      <link>https://www.yunxicoding.top/post/ide/vs-code/debug-go/</link>
      <pubDate>Mon, 25 Mar 2019 18:24:21 +0800</pubDate>
      
      <guid>https://www.yunxicoding.top/post/ide/vs-code/debug-go/</guid>
      <description>实现效果 安装 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 文件，如果第一次打开,会新建一个配置文件，默认配置内容如下
{&amp;#34;version&amp;#34;: &amp;#34;0.2.0&amp;#34;,&amp;#34;configurations&amp;#34;: [{&amp;#34;name&amp;#34;: &amp;#34;Launch&amp;#34;,&amp;#34;type&amp;#34;: &amp;#34;go&amp;#34;,&amp;#34;request&amp;#34;: &amp;#34;launch&amp;#34;,&amp;#34;mode&amp;#34;: &amp;#34;auto&amp;#34;,&amp;#34;program&amp;#34;: &amp;#34;${fileDirname}&amp;#34;,&amp;#34;env&amp;#34;: {},&amp;#34;args&amp;#34;: []}]} 常见属性如下</description>
    </item>
    
    <item>
      <title>vscode 自定义代码片段</title>
      <link>https://www.yunxicoding.top/post/ide/vs-code/snippet/</link>
      <pubDate>Sat, 09 Mar 2019 17:54:58 +0800</pubDate>
      
      <guid>https://www.yunxicoding.top/post/ide/vs-code/snippet/</guid>
      <description>实现效果 起因 最近在写一个全新的项目，在项目中频繁创建各种类，这就导致很多重复的东西需要频繁的写，例如类名，命名空间，继承关系&amp;hellip;那么有没有一种 办法能解决这个问题呢？
提出设想 我想起了，最初用 sublime text 的时候，可以利用代码片段功能大段的生成html代码，当时就觉得十分的方便，那么 vscode 有没有这个功能呢?经过 google 之后我知道 vscode 是有代码片段功能的。既然有了想法，也具备了基础实施条件，那么接下来开始尝试实现之前的想法。
资料查询 经过一番 google 后发现对于 vscode snippet 介绍都在相对基础的简单应用（只是一些插入固定代码和光标介绍），者显然无法实现我们生成类名和明明空间的想法，google 无果，那么只能看看 vscode 官方文档果然有意想不到的收获，看完官网介绍后，基本就确定此路是可行的。
snippet 示例 在 File &amp;gt; Preferences (Code &amp;gt; Preferences on macOS) 中选择 User Snippets 在弹出框里选择对应的代码片段语言，我这里使用的是php
&amp;#34;Print to console&amp;#34;: {&amp;#34;prefix&amp;#34;: &amp;#34;log&amp;#34;,&amp;#34;body&amp;#34;: [&amp;#34;console.log(&amp;#39;$1&amp;#39;);&amp;#34;,&amp;#34;$2&amp;#34;],&amp;#34;description&amp;#34;: &amp;#34;Log output to console&amp;#34;} 在打开的 php.json 中有示例代码：
Print to console 代码片段名称 prefix 插件前缀 body 插件内容可以是字符串，也可以为数组，若为数组每个元素都做为单独的一行插入。 description 插件描述 Snippet 语法 制表位(Tabstops) 使用制表位(Tabstops)可是在代码片段中移动光标位置，使用$1,$2来指定光标的位置,数字代表光标的移动的顺序，值得注意的时$0代表光标的最后位置。如果有多个相同的制表位(Tabstops)会在编译器里同时出现多个光标（类似编译器的块编辑模式）。</description>
    </item>
    
  </channel>
</rss>
