akinsho / akinsho/toggleterm.nvim

Toggleterm.nvim: Using cmd.exe with clink on Windows (More performant than Windows Terminal)

Open
#613 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Lua
Stars
5.6k
Forks
206
PR merge metrics
No merged PRs in 30d

Description

[`clink`](https://github.com/chrisant996/clink) is a tool which transforms `cmd.exe` on Windows to give it the power and customization of Windows Terminal while preserving the native speed of cmd.exe. Really good out-of-the-box experience including syntax highlighting, autosuggestions and other stuff.

Here's how I'm using it in my config to run cmd.exe with clink:

```lua
{
"akinsho/toggleterm.nvim",
opts = {
shell = package.config:sub(1, 1) == "\\"
and 'cmd.exe /s /k "clink inject -q && %userprofile%\\dotfiles\\doskeys.cmd"'
or vim.o.shell,
},
}
```

Explanation:
- `package.config:sub(1, 1) == "\\"`: Checks the path separator, if its a backslash we are on Windows, otherwise do not change the shell
- `/s`: Suppress cmd.exe copyright information that launches on start up
- `/k`: Runs the following string as a command
- `clink inject -q`: Starts clink
- `%userprofile%\\dotfiles\\doskeys.cmd`: Since cmd.exe doesn't have something like `.bashrc`, I use a `.cmd` file which contains a bunch of `doskey`, `doskey` is similar to `alias` in bash. That file is being run and activates my "aliases" to work within the terminal

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.