toggleterm.nvim icon indicating copy to clipboard operation
toggleterm.nvim copied to clipboard

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

Open nik-rev opened this issue 1 year ago • 0 comments

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:

{
		"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

nik-rev avatar Oct 11 '24 17:10 nik-rev