使用clink优化cmd
参考链接
- chrisant996/clink: Bash’s powerful command line editing in cmd.exe (github.com)
- chrisant996/clink-flex-prompt: Flex prompt for Clink (github.com)
预先准备
苦于powershell
每次都要一秒多的启动速度,偶然这两天发现了clink
这个用于提升cmd
体验的工具,尝试了下发现经过简单的配置以后可以替代平时绝大部分ps
的需求。因此在这里记录一下基本配置流程。
安装clink和clink-flex-prompt
clink
和clink-flex-prompt
都可以使用scoop
在Windows中完成安装。其中clink
的大致效果就是在启动cmd
的时候进行注入,来实现一些额外功能的扩展。clink-flex-prompt
提供的功能则是类似oh-my-zsh
的prompt
自定义,让交互界面不至于太苍白
1 |
|
这两个组件都是在scoop
默认的main
仓库就有,不需要添加额外的bucket
就能直接安装。
在使用scoop
安装了clink
之后,还需要使用
1 |
|
指令来实现每次启动cmd
之前都自动启用clink
,也可以使用clink inject
来在当前的cmd
当中暂时体验一下clink
的效果
配置clink
依据Clink官方文档中的提及,原本是会有一个Use enhanced default settings
的选项来默认实现一些自动填充或快捷键的功能。但在使用scoop
安装clink
的情况下,至少可以发现自动显示suggestions
补全的功能是没有被配置好的。
自动补全
对于autosuggest
的功能,只需要执行下面的指令就可以实现
1 |
|
创建.inputrc
文件
类似zsh
有一个.zshrc
,对于clink
来说也有一个.inputrc
的文件用于初始化clink
的配置文件。
使用CMD
输入下面的指令来在Windows
的用户目录创建inputrc
1 |
|
创建好了以后可以在其中粘贴以下内容来实现一些基本的功能:
1 |
|
对于具体
inputrc
的配置写法可以看这里:Init File
使用clink-flex-prompt自定义终端提示
使用scoop
安装了flex-prompt
以后的使用方式也很简单。只需要在cmd
里面执行flexprompt configure
以后,就可以像p10k
那样来自定义一个自己需要的,较为美观的终端提示了。这一块都是有可视化交互的,就不做过多的赘述。
实现Linux中的一些基础指令
平时写代码的时候因为也主要是用Linux
系统,对ls
和rm
这种指令已经敲出肌肉记忆了。Powershell
里面对这些指令做了兼容,因此用的时候没有什么额外的感觉,但是切换到cmd
的时候就会发现这些指令都不一样了,dir
和del
一类的指令用的很不顺手。这个时候就有两种解决方法。一种方法算是曲线救国,通过调用git-bash
里面提供的工具来实现类似原生Linux
的指令,这也是比较推荐的一种方式。
配置Git可执行文件的目录
在Windows
中安装好了Git
之后,往往都会有一个git-bash
,而我们则可以通过git-bash
来实现一些本来在Linux
才能执行的指令。而之所以能达到这种效果,是因为Git
在安装好了以后在安装目录下有一个/usr/bin
的文件夹,里面已经预先放好了可以使用的类似Linux
中的一些基本指令,诸如ls
和cat
这种常用工具都已经有了。因此我们只需要在系统的环境变量中,将<Git的安装路径>\usr\bin
添加到PATH
中即可。
比如我是使用scoop
安装了git
,因此我的git
安装路径如下:
1 |
|
然后我就只需要在环境变量中把这个路径添加到PATH
中,我就可以使用我需要的基础工具了:
使用cmd
脚本预先配置好alias
还有一种方式是创建alias
,以替代原生cmd
的一些指令。这种方法是我最先使用的方法,后面发现了git-bash
中的工具是需要额外配置环境变量以后就没有使用这种方法了。
在Windows
上创建alias
的方法是使用doskey
来执行创建,clink
则支持在启动的时候自动执行一个cmd
脚本,来实现doskey
的读入。为此clink
默认会从以下路径来寻找clink_start.cmd
文件,用以初始化cmd
控制台
- Windows XP:
C:\Documents and Settings\<username>\Local Settings\Application Data\clink
- Windows Vista以及更高的版本:
C:\Users\<username>\AppData\Local\clink
如果需要修改clink_start.cmd的位置,可以参考这部分文档:File Locations
在这里我的操作系统目前是Windows 10
,因此我只需要在C:\Users\<username>\AppData\Local\clink
目录下创建clink_start.cmd
文件,并写入以下内容
1 |
|
然后保存以后,就会在下一次启动cmd之前执行这些doskey
指令,来实现alias
的效果了。
使用cmd作为Windows Terminal的默认应用
最后的最后,只需要在Windows Terminal
里面设置cmd
为默认的应用,就可以实现每次启动wt
的时候,都是秒开cmd
的效果了,再也不用每次都等powershell
启动才能输入指令了。