Я новичок в xemacs и linux вообще, поэтому считаю меня новичком. И мне было интересно, есть ли причина, по которой elisp не будет выполнять команду или команды мгновенно.команды flush xemacs/elisp необходимо?
Я следующий код в моем init.el:
(defun myClear()
"Clears console output buffer (F5)"
(erase-buffer "*Shell Command Output*"))
(defun myMake()
"Executes make (F6)"
(shell-command "make"))
(defun myClearMake()
"Clears console output buffer before executing make (F7)"
(erase-buffer "*Shell Command Output*")
(shell-command "make"))
они связаны с клавишами F5-F7. Удар F7 не дает того же результата, что и F5, а затем F6, который работает как ожидалось.
То, что происходит вместо этого, состоит в том, что оператор (erase-buffer ...) кажется пропущенным или может быть выполнен непосредственно перед (shell-command ...). Так как командная оболочка стирает буфер, прежде чем выпустить вывод оболочки, его сложно сказать.
Что я ожидал: выход в консоль очищается. Это должно быть видимым, пока make все еще работает и еще не выдал какой-либо результат (что в моем случае составляет несколько секунд).
Я понятия не имею, как дальше тестировать это, и хотя это похоже на общую задачу, я не мог найти ничего подходящего или подобного. Также подумайте, что я не только заинтересован в получении упомянутого поведения, но и понимаю, что я сделал не так.
Любые ссылки/указатели на механики elisp, которые объясняют это поведение, оцениваются. Спасибо, Tasche
Я предлагаю вам использовать 'M-x compile RET' вместо' shell-command'. Это создаст буфер компиляции, в котором вы можете щелкнуть по ошибкам/предупреждениям, которые должны быть взяты непосредственно в соответствующую точку в файле. – sds