Cmder¶
Emulador de consola para Windows
Configuración¶
- Para que respete el prompt con el símbolo λ y muestre las ramas de git, hay que desinstalar el
clink
global, y utilizar el que trae encmder\vendor\clink
. Además, es necesario modificarC:\cmder/vendor/clink-completions/npm_prompt.lua
por:
local color = require('color')
function npm_prompt_filter()
local package = io.open('package.json')
if package ~= nil then
local package_info = package:read('*a')
package:close()
local package_name = string.match(package_info, '"name"%s*:%s*"(%g-)"')
if package_name == nil then
package_name = ''
end
local package_version = string.match(package_info, '"version"%s*:%s*"(.-)"')
if package_version == nil then
package_version = ''
end
local package_string = color.color_text("("..package_name.."@"..package_version..")", color.YELLOW)
clink.prompt.value = clink.prompt.value:gsub('{git}', '{git} '..package_string)
end
return false
end
clink.prompt.register_filter(npm_prompt_filter, 40)
Trucos¶
Cambiar al directorio de otra unidad¶
Se hace con /d
cd /d x:\directorio
Esto en realidad es un truco de Windows, no de cmder
Lanzar una aplicación/script en el arranque¶
Se hace añadiéndolo <cmder>/config/user-profile.cmd
Por ejemplo, para activar un entorno virtual python en el arranque:
conda activate ai
Hacer un refresco de pantalla¶
En algunos casos no funciona correctamente el comando clear
desde ssh. Para solucionarlo se puede configurar una nueva macro a la combinación de teclas Ctrl+L que haga print("echo -e \"\\0033\\0143\"\n")
Cambiar el prompt (y otras configuraciones)¶
Se hace en cmder/config/user-startup.cmd
@prompt $e[1;32;40m$p$g$e[1;32;40m$S$E[0m
Nota: subido a gists
Nota: el prompt por defecto muestra en qué rama nos encontramos si estamos en un directorio controlado por gist. Esto es relativamente útil, pero consume recursos que, por ejemplo, en la tablet hace que vayan más lentas las operaciones sobre esos directorios (ls
, etc)
Clink¶
Combinaciones de teclas¶
Combinación de teclas | Función |
---|---|
Ctrl-@ | set-mark |
Ctrl-a | beginning-of-line |
Ctrl-b | backward-char |
Ctrl-c | ctrl-c |
Ctrl-d | delete-char |
Ctrl-e | end-of-line |
Ctrl-f | forward-char |
Ctrl-g | abort |
Ctrl-h | backward-delete-char |
Ctrl-i | clink-completion-shim |
Ctrl-j | accept-line |
Ctrl-k | kill-line |
Ctrl-l | clear-screen |
Ctrl-m | accept-line |
Ctrl-n | next-history |
Ctrl-p | previous-history |
Ctrl-q | reload-lua-state |
Ctrl-r | reverse-search-history |
Ctrl-s | forward-search-history |
Ctrl-t | transpose-chars |
Ctrl-u | unix-line-discard |
Ctrl-v | paste-from-clipboard |
Ctrl-w | unix-word-rubout |
Ctrl-y | yank |
Ctrl-z | undo |
Ctrl-] | character-search |
Ctrl-_ | undo |
Ctrl-Alt-c | copy-line-to-clipboard |
Ctrl-Alt-e | expand-env-vars |
Ctrl-Alt-g | abort |
Ctrl-Alt-h | backward-kill-word |
Ctrl-Alt-i | tab-insert |
Ctrl-Alt-j | vi-editing-mode |
Ctrl-Alt-m | vi-editing-mode |
Ctrl-Alt-r | revert-line |
Ctrl-Alt-u | up-directory |
Ctrl-Alt-y | yank-nth-arg |
Ctrl-Alt-[ | complete |
Ctrl-Alt-] | character-search-backward |
Alt-` | set-mark |
Alt-# | insert-comment |
Alt-& | tilde-expand |
Alt-* | insert-completions |
Alt-- | digit-argument |
Alt-. | yank-last-arg |
Alt-[0-9] | digit-argument |
Alt-\< | beginning-of-history |
Alt-= | possible-completions |
Alt-> | end-of-history |
Alt-? | possible-completions |
Alt-\ | delete-horizontal-space |
Alt-_ | yank-last-arg |
Alt-b | backward-word |
Alt-c | capitalize-word |
Alt-d | kill-word |
Alt-f | forward-word |
Alt-h | show-rl-help |
Alt-l | downcase-word |
Alt-n | non-incremental-forward-search-history |
Alt-p | non-incremental-reverse-search-history |
Alt-r | revert-line |
Alt-t | transpose-words |
Alt-u | upcase-word |
Alt-y | yank-pop |
Alt-~ | tilde-expand |
Ctrl-x,Ctrl-g | abort |
Ctrl-x,Ctrl-r | re-read-init-file |
Ctrl-x,Ctrl-u | undo |
Ctrl-x,Ctrl-x | exchange-point-and-mark |
Ctrl-x,( | start-kbd-macro |
Ctrl-x,) | end-kbd-macro |
Ctrl-x,e | call-last-kbd-macro |
Errores¶
Al crear un fichero package.json
en ese directorio me da el siguiente error:
C:\cmder/vendor/clink-completions/npm_prompt.lua:11: attempt to concatenate local 'package_version' (a nil value)
La solución es editar cmder/vendor/clink-completions/npm_prompt.lua
, modificando
...
local package_name = string.match(package_info, '"name"%s*:%s*"(%g-)"')
local package_version = string.match(package_info, '"version"%s*:%s*"(.-)"')
...
por
...
local package_name = string.match(package_info, '"name"%s*:%s*"(%g-)"')
if package_name == nil then
package_name = ''
end
local package_version = string.match(package_info, '"version"%s*:%s*"(.-)"')
if package_version == nil then
package_version = ''
end
...