Я использовал emacs в течение нескольких недель, и это было большим до сих пор - прибывающий из vim
было легче, чем я ожидал (на самом деле - сочетания клавиш emac чувствуют себя больше... естественными).
Я добавил немного настроек как перемещение между буферным использованием M-Left/Right/Up/Down
потому что C-x o
чувствовавший немного слишком медленный, когда у меня было четыре файла, открытые сразу.
До сих пор - так хороший:-)
Одна вещь прослушивает меня хотя:
C-x 3
и C-x 2
M-x term ENT
Обычные ярлыки, очевидно, не работают - терминал прерывает каждую команду emacs, и я должен нажать на другой буфер для активации его.
В терминологическом режиме любой обычный C-x любой
клавишный переплет становится C- любым
вместо этого.
В терминологическом режиме, тип C-c b RET
для переключения на какой-нибудь другой буфер.
Это делает то, что обычно делает C-x b RET.
Как вы сами упомянули, добавление строки запроса в таблицу стилей/URL-адрес сценария - это уловка, позволяющая получить контроль над "недействительностью" кэшированных версий.
Вместо добавления случайной строки обычно используется дата последнего изменения соответствующего файла из файловой системы. Чтобы улучшить коэффициент прохлады, можно преобразовать дату в числовую форму и отформатировать ее в шестнадцатеричном формате при построении URL-адреса: -)
<script type="text/javascript" src="script.js?v=1750493C88"></script>
<link rel="stylesheet" type="text/css" href="style.css?v=1750493C88" />
-121--3959381- Предложение Корнеля об использовании QuurePerformureCounter является превосходным.
Если это не работает для вас, и вы не возражаете против другого решения только для Windows, используйте мультимедийные таймеры Windows. Найдите в файлах справки Visual Studio "timeBeginPeriod", "timeEndPeriod" и "Using Multimedia Timers".
Для использования мультимедийных таймеров необходимо включить заголовок и ссылку с winmm.lib:
#include <mmsystem.h>
#pragma comment( lib, "winmm" ) // need this library for multimedia timers
-121--4213479- Я не уверен, что понимаю ваш вопрос. При запуске M-x терминала большинство ключевых событий посылается на базовый терминал, поэтому стандартная привязка C-x o и M-Left в терминале недоступны.
Попробуйте использовать M-x shell , чтобы получить оболочку в одном из окон, и настроенные привязки навигации все равно должны работать.
Для более общего ответа, касающегося окон emacs, вы можете посмотреть windmove
, который начал поставляться с Emacs около Emacs 22, я думаю:
;;; Commentary:
;;
;; This package defines a set of routines, windmove-{left,up,right,
;; down}, for selection of windows in a frame geometrically. For
;; example, `windmove-right' selects the window immediately to the
;; right of the currently-selected one. This functionality is similar
;; to the window-selection controls of the BRIEF editor of yore.
;;
;; One subtle point is what happens when the window to the right has
;; been split vertically; for example, consider a call to
;; `windmove-right' in this setup:
;;
;; -------------
;; | | A |
;; | | |
;; | |-----
;; | * | | (* is point in the currently
;; | | B | selected window)
;; | | |
;; -------------
;;
;; There are (at least) three reasonable things to do:
;; (1) Always move to the window to the right of the top edge of the
;; selected window; in this case, this policy selects A.
;; (2) Always move to the window to the right of the bottom edge of
;; the selected window; in this case, this policy selects B.
;; (3) Move to the window to the right of point in the selected
;; window. This may select either A or B, depending on the
;; position of point; in the illustrated example, it would select
;; B.
;;
;; Similar issues arise for all the movement functions. Windmove
;; resolves this problem by allowing the user to specify behavior
;; through a prefix argument. The cases are thus:
;; * if no argument is given to the movement functions, or the
;; argument given is zero, movement is relative to point;
;; * if a positive argument is given, movement is relative to the top
;; or left edge of the selected window, depending on whether the
;; movement is to be horizontal or vertical;
;; * if a negative argument is given, movement is relative to the
;; bottom or right edge of the selected window, depending on whether
;; the movement is to be horizontal or vertical.
Это должно помочь заставить C-x b работать. Возможно, вам придется добавить привязки для любых пользовательских команд перемещения.
(add-hook 'term-mode-hook
(lambda ()
;; C-x is the prefix command, rather than C-c
(term-set-escape-char ?\C-x)
(define-key term-raw-map "\M-y" 'yank-pop)
(define-key term-raw-map "\M-w" 'kill-ring-save)))
Кстати, между режимом оболочки и режимом термина есть большая разница. Первый лучше интегрируется с emacs (например, команда cd). Последний является полной эмуляцией терминала и может обрабатывать программы curses. У них обоих есть свое место.