默认情况下,Cmder / conemu显示完整的当前路径,我希望它只显示当前目录。那可能吗?我查看了这些设置,但无法找到可以在何处或如何进行设置。
答案 0 :(得分:2)
安德鲁的答案奏效了!但是我做了一些调整,使它看起来更合法。
打开cmder_folder/vender/clink.lua
。在下面的cwd
生成代码之后,
local old_prompt = clink.prompt.value
local cwd = old_prompt:match('.*(.:[^>]*)>')
if cwd == nil then cwd = clink.get_cwd() end
我在安德鲁的代码启发下添加了以下几行。
local function get_folder_name(str)
index = str:match'^.*()\\'
local dir = string.sub(str, index+1)
return dir
end
cwd = get_folder_name(cwd)
它对我来说很完美。
答案 1 :(得分:1)
下午好, 我今天也有同样的问题。我找不到答案所以我自己做了解决方案。我将分享它。我之前从未写过lua,所以我确信我的代码不是最好的。但是,它确实有效。
正在使用LUA脚本构建cmder提示符。 您将不得不编辑cmder \ vendor \ clink.lua文件。 在第44行,你会看到一行以:local cmder_prompt开头 这就是提示本身正在建立的地方。
“{cwd}”是打印路径的那一行中的位。 所以我添加了一个函数,它接受了cwd变量并删除了除列表中最后一个目录之外的所有值。所以将此函数添加到您的lua脚本:
get_folder_name = function(str)
index = str:match'^.*()\\'
local name = string.sub(str, index+1)
return name
end
然后我在我传递给cwd变量的本地cmder_prompt行之前添加了这个:
dir = get_folder_name(cwd)
然后最后改变这一行:
local cmder_prompt = "\x1b[1;32;40m{cwd} {git}{hg}{svn} \n\x1b[1;39;40m{lamb} \x1b[0m"
要:
local cmder_prompt = "\x1b[1;32;40m"..dir.." {git}{hg}{svn} \n\x1b[1;39;40m{lamb} \x1b[0m"
如果不清楚,我会粘贴下面的代码。我的下面的代码使提示符如下所示:{myUsername @ mycomputerName}:directory $
-- build our own prompt
-- orig: $E[1;32;40m$P$S{git}{hg}$S$_$E[1;30;40m{lamb}$S$E[0m
-- color codes: "\x1b[1;37;40m"
username = os.getenv("USERNAME")
host = os.getenv("COMPUTERNAME")
dir = get_folder_name(cwd)
local cmder_prompt = "\x1b[1;32;40m{"..username.."@"..host.."}:\x1b[1;94;40m"..dir.." \x1b[1;39;40m$ \x1b[0m"
local lambda
cmder_prompt = string.gsub(cmder_prompt, "{cwd}", cwd)
if env == nil then
lambda = "λ"
else
lambda = "("..env..") λ"
end
clink.prompt.value = string.gsub(cmder_prompt, "{lamb}", lambda)
end
get_folder_name = function(str)
index = str:match'^.*()\\'
local name = string.sub(str, index+1)
return name
end