首页 > 解决方案 > Windows 上的 Emacs 从脚本启动时会打开 emtpy 缓冲区

问题描述

背景

我正在重写我的newNote脚本,我正在使用 runemacs.exe Windows,而不是像过去那样直接调用二进制文件。以前我会让启动终端挂在后台,我意识到 runemacs.exe 避免了这种烦恼。

问题:

该脚本从原始文件的角度工作,但是当 emacs 启动时,我得到一个空缓冲区,我希望在其中看到一个标题和一些定义的 TODO 标记。如果我.org直接打开文件,我会看到内容符合我的预期。任何帮助,将不胜感激!

#!/bin/bash
BASE_NOTES_DIR="${USER_DESKTOP}/Notes"
CURRENT_DATE=`date "+%Y_%m_%d_%s"`
TODO_OPTIONS='TODO InProgress(i) Rejected(R) | BackBurner(B) DONE(D) Cancelled(c)'

function spaceToUnderscore()
{
    RESULT="`echo "$@" | sed 's/ /_/g'`"
}


function getPromptResponseEscaped()
{
    read -p "$@" answer
    spaceToUnderscore $answer
}

getPromptResponseEscaped "Which Project is this for?: "
Project=$RESULT

read -p "What title for this new note?: " user_title
spaceToUnderscore $user_title
Title=$RESULT

Folder="${BASE_NOTES_DIR}/${Project}/${Title}"

if [ ! -d $Folder ]
then
    mkdir -p $Folder
fi

fileName="${CURRENT_DATE}_${Title}.org"
filePath="${Folder}/${fileName}"
touch $filePath && \
echo "#+TITLE: ${user_title}" >> $filePath && \
echo "#+TODO: ${TODO_OPTIONS}" >> $filePath && \
sync && \
"C:\Program Files\Emacs\x86_64\bin\runemacs.exe" "$fileName"

笔记:

执行

USER_DESKTOP在运行此代码之前,需要将其定义为环境变量或新行。

重击版本

GNU bash, version 4.4.23(1)-release (x86_64-pc-msys)

标签: bashemacsgit-bashorg-mode

解决方案


推荐阅读