简单ZSH功能和文件在他们的名字空间(Simple ZSH function and files w

2019-10-21 19:51发布

我已经把下面的函数到我的~/.zshrc文件:

function note() {
    vim $HOME/Dropbox/$1.md
}

当我把它note "20150209-132501-Recx-new note today.md"例如,它创建一个新的文件,但文件名“20150209-132501-Recx新”。 我意识到这是一个简单的问题,但我怎么得到它与全名创建的笔记?

Answer 1:

壳进行以该顺序参数替换和字分割。 这意味着你最终执行

vim /home/username/Dropbox/20150209-132501-Recx-new note today.md.md

即你叫vim的三个文件名。 如果要抑制上取代部分字拆分,你必须使用函数定义报价,以及:

function note() {
    vim "$HOME/Dropbox/$1.md"
}

并把它与

note "20150209-132501-Recx-new note today"

编辑1:此版本的note串接有一个空格,ARGS:

function note() {
    filename=$1
    while test $# -gt 1; do shift; filename="$filename $1"; done
    vim "$HOME/Dropbox/$filename.md"
}

编辑2:这可能是更容易:

function note() {
    vim "$HOME/Dropbox/$*.md"
}


文章来源: Simple ZSH function and files with spaces in their name