Редактировать Документы Google с помощью Emacs?
Как редактировать текстовые документы на Google Диске с помощью Emacs и возвращать мои изменения обратно в Google Doc?
Я нашел программу командной строки Google, а также что-то вроде gclient, которое является частью Emacsspeak, но они, похоже, требуют Linux или Windows, а я на OSX с помощью Aquamacs. Или, может быть, я просто не понимаю, как их установить.
Это выполнимо?
Ответы
Ответ 1
googlecl
может быть установлен из macports. Затем вы можете открывать файлы с локальными emacs с помощью сервера emacs.
После установки вы можете выполнить следующие команды:
$ google docs list # gets a list of the files
$ google docs get <FILE> /tmp/edit$$.txt # gets the <FILE> to /tmp/edit$$.tmp
$ emacsclient /tmp/edit$$.tmp
$ google docs upload /tmp/edit$$.tmp <FILE>
Однако я обнаружил, что google docs get
не работает так, как должен.
Ответ 2
Нет необходимости в Fetch, Edit (emacs) и нажать на файл назад.
Сначала установите "Google Диск" на свой Mac.
Затем вы можете редактировать файл напрямую. Посмотрите под ~/Google\Drive.
Ответ 3
Другая опция, использующая gdrive (требуется рул для завершения)
(defvar gdocs-folder-id "<gdrive folder for exported docs>"
"location for storing org to gdocs exported files, use 'gdrive list -t <foldername>' to find the id")
(defun gdoc-export-buffer ()
"Export current buffer as google doc to folder irentified by gdocs-folder-id"
(interactive)
(shell-command
(format "gdrive upload --convert --mimetype text/plain --parent %s --file %s"
gdocs-folder-id buffer-file-name)))
(defun gdoc-import-buffer (doc)
"Import a file in gdocs-folder-id into current buffer"
(interactive
(list
(completing-read "Choose one: "
(split-string
(shell-command-to-string
(format "gdrive list -q \"'%s' in parents\"" gdocs-folder-id)) "\n"))))
(insert (replace-regexp-in-string (string ?\C-m) (string ?\C-j) (shell-command-to-string
(format "gdrive download -s --format txt --id %s" (car (split-string doc " ")))))))