Как я заставляю Emacs заполнять предложения, но не абзацы?

Возможно, вы сможете запустить и загрузить пример мобильного приложения (для Android или iOS) SDK, чтобы запустить оттуда симулятор и затем запустить нужные команды из встроенного sdk / onboard sdk для тестирования. Я не уверен, что это сработает, так как неясно, если

  1. вам нужно запускать симулятор на борту, а не на мобильном

обе симуляции

  1. джи могут не позволять запускать два симулятора одновременно.

2.) Будет проблемой DJI, и я не тестировал 2 симуляции одновременно. Я думаю, если вы не можете запустить 2, но это может стоить попробовать. 1.) зависит больше от того, что вы пытаетесь достичь. Но я мог бы что-то упустить и не иметь опыта пробовать несколько симуляций, если это то, что вам нужно.

28
задан Community 23 May 2017 в 12:17
поделиться

5 ответов

При помещении маркера комментария в конце каждого предложения Emacs знает для не перемещения следующей строки в комментарии:

chat chat chat.%
A new sentence
with goofed up wrapping that needs to be fixed.%
Mumble mumble%

Затем M-q заполняет каждое предложение отдельно, по крайней мере, в AUCTeX 11.85. (При тестировании этого в Emacs, кажется, существует ошибка, где, если это - первый абзац в буфере и Вы вводите M-q, Вы получаете сообщение об ошибке. Просто поместите новую строку перед текстом для работы вокруг этого.)

, Если Вы не хотите вводить символы комментария, Вы могли бы взять ЛАТЕКСНЫЙ абзац заливки и изменить его так, чтобы заканчивающая предложение пунктуация в конце строки работала так же к комментариям.

4
ответ дан Jouni K. Seppänen 28 November 2019 в 03:48
поделиться

Может не работать при всех обстоятельствах, но:

(defun my-fill-sentence ()
  "Fill sentence separated by punctuation or blank lines."
  (interactive)
  (let (start end)
    (save-excursion
      (re-search-backward "\\(^\\s-*$\\|[.?!]\\)" nil t)
      (skip-syntax-forward "^w")
      (setq start (point-at-bol)))
    (save-excursion
      (re-search-forward "\\(^\\s-*$\\|[.?!]\\)" nil t)
      (setq end (point-at-eol)))
    (save-restriction
      (narrow-to-region start end)
      (fill-paragraph nil))))

, Чтобы заставить его работать с auto-fill-mode, добавьте (setq normal-auto-fill-function 'my-fill-sentence) к своему рычагу режима LaTeX (я думаю).

2
ответ дан scottfrazer 28 November 2019 в 03:48
поделиться

Я предполагаю, что Вы знаете elisp.

существует несколько подходов, которые можно проявить:

  • Hook в auto-fill-mode. Существует много трудно кодированных условных выражений там, таким образом, это не могло бы работать на Вас. Можно потенциально играть с auto-fill-function и видеть, есть ли у Вас рычаг, Вам нужно там.

  • Делают символ (вероятно .) "электрическим" так, чтобы при нажатии его он вставил себя и затем вызвал функцию, чтобы определить, как заполнить строку, Вы идете.

  • Набор after-change-hook для вызывания функции, которая определяет, как заполнить предложение. Эта функция будет вызвана после каждого изменения в буфере, также - это эффективно. (Этот механизм используется font-lock, не волнуйтесь об этом слишком много. Это звучит медленным, но действительно не - люди медленно вводят.)

, После того как Вы сцепились в в правильном месте, просто необходимо реализовать заполняющуюся логику. Источник для sentence-at-point (от thingatpt) может быть поучительным.

Так или иначе, я никогда не слышал ни о ком делающем это..., но это определенно возможно. Как большинство вещей в Emacs, это - просто Простой Вопрос Программирования.

1
ответ дан jrockway 28 November 2019 в 03:48
поделиться

Вот , что я использую , который был главным образом заперт от Luca de Alfaro :

(defun fill-sentence ()
  (interactive)
  (save-excursion
    (or (eq (point) (point-max)) (forward-char))
    (forward-sentence -1)
    (indent-relative t)
    (let ((beg (point))
          (ix (string-match "LaTeX" mode-name)))
      (forward-sentence)
      (if (and ix (equal "LaTeX" (substring mode-name ix)))
          (LaTeX-fill-region-as-paragraph beg (point))
        (fill-region-as-paragraph beg (point))))))

я связываю это с M-j с [1 110]

(global-set-key (kbd "M-j") 'fill-sentence)

, ссылки на "LaTeX" для поддержка AUCTeX. Если Вы не используете AUCTeX, эти let может быть упрощен до [1 111]

(let (beg (point))
  (forward-sentence)
  (fill-region-as-paragraph beg (point)))
9
ответ дан Chris Conway 28 November 2019 в 03:48
поделиться

Если другие ответы также автоматические, вот полуавтоматический подход. Это в основном, что Вы неоднократно делали бы, если бы Вы собирались вручную переформатировать, но сжатый, таким образом, можно нажать единственную клавишу неоднократно вместо этого.

;; - go to the end of the line,
;; - do ^d to suck the previous line onto this one, 
;; - make sure there's only one space between the now-concatenated
;;   lines, and then 
;; - jump to the end and hit space so that (with auto-fill-mode)
;;   the line nicely rewraps itself:
;;   (turn on auto-fill-mode with M-x auto-fill-mode)
(defalias 'fill-sentence
  (read-kbd-macro "C-e C-d SPC M-x just- one- space RET C-e SPC <backspace>"))

(define-key global-map [f4] 'fill-sentence)  ; or whatever key you like
1
ответ дан dreeves 28 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: