emacs

Alt はmac ではescが当てはめられている様。AltというかMeta keyらしいんだけど。
Macでは? C-[がMeta keyになっていることがわかった。これはEsc, Altよりも入力しやすい、という説もある。

ショートカット

M-v 1ページ戻る
C-v 1ページ進む
M-$lt; ファイルの先頭へ
M-> ファイルの末尾へ
C-l カーソルを中央に
M-g g # で#行に移動する。
C+x uで戻る
C+/でも戻れる。上との違いはよくわからない
C+sは下で検索、C+rは上で検索
M+% で逐次置換
C+x C+0の後に+-0で文字のサイズを一時的に変更C-gで抜ける。
カーソル移動の前にC+uで4つ分C+u C+u で16こ分移動できる
カーソル移動の前にC+uの後に数字を入力すると、その分操作したことになる(デフォルトが4ということ)。M+#でも同じ効果がある
領域選択してからtabを押すと行頭をいい感じに調整してくれる。

テキスト

C+Space カーソル移動でテキスト選択
C-x space 矩形洗濯開始
M+w コピー
C+w 切り取り
C+y 貼り付け
選択してからC+c > でタブを挿入。< でタブを削除
選択してからC+x r tで先頭に文字を挿入. r oで先頭にスペース挿入。
選択の最後の行頭を消したい文字数に合わせてC+x r dでその文字の分だけ消去

バッファとウインドウ

C-x C-fで新しいファイルを読み込む
C+x C+b で開いているバッファ一覧を表示
C-x bで既に開いているバッファの切り替え
C-x 2(3)で横(縦)に画面を分割
C-x oで分割間の移動。
C-x 1で今の部分のみ残す。この際バッファは残る。
C-x 0で今の部分を消去する。
C-x }で横方向にウインドウを広げる。C-uと併用するべき。
C-x }で横方向にウインドウを縮める。C-uと併用するべき。
C-x ^で縦方向にウインドウを広げる。C-uと併用するべき。
c-\で言語の変更

Overleafを手元のemacs 環境で編集したい時

Chrome プラグインのGhost Textとemacs パッケージのatomic-chromeを使う。少しラグがあるように感じる。他のブラウザとエディタの組み合わせでも使える。
ブラウザでの手続き(ストアから拡張機能をとってくるだけ。)
emacs での設定。
over leafのための設定
OSをMontereyにしたせいか?よく接続が切れるようになった。 やはりOSアップデートは悪かもしれない。
気づいたら直ってた。接続が不安定な場合はブラウザを再読み込みするとマシになることが多い。

Yatex

インストール : 次のサイトを参考にしてインストール、下のinit.elでインストールできる。Package.elを用いるのが現代的手法らしい。
latexの設定もしとくとコンパイルもできる。この設定も下にある。
Ref TeXを有効にする、参考サイトはここ
基本的なショートカット
C-c t d TeXのタイプセットしてpdfを作成
C-c t b BibTeXのタイプセット(ただし単体ではあまり使わない、上を回しておけばいい。)
C-c t p プレビュー
C-c ' エラー行へのジャンプ

C-c b space hogehoge begin-endの補完 \begin{hogehoge}-\end{hogehoge}
space hogehogeの代わりに,Eでequation, iでitemize, mでminipage, pでpicture
:aで\alphaが補完されるみたいなギリシャ文字補完もある。
;s \sum, ;6 \partial TABで補完一覧を表示

C-c [ bib ファイルのciteを補完する、数文字打つと探してくれる。
C-c) refの挿入

テキストチェックはaspelを使っている。入ってなかったらbrew install aspellでインストール.
~/.aspell.confにlang en_USと記入しておかないと日本語にされる場合があるので注意


~/.emacs.d/init.el


;;;; ----
;; language
;; ----
;; set language as Japanese
(set-language-environment 'Japanese)
;; coding UTF8
(set-language-environment  'utf-8)
(prefer-coding-system 'utf-8)



;; ----
;; theme
;; ----
;; emacs テーマ選択
(load-theme 'manoj-dark t)
;; font
;;(add-to-list 'default-frame-alist '(font . "ricty-12"))
;(when window-system
					; (set-frame-size
;;(when window-system
;;  (setq yoko (cadddr(car (car (display-monitor-attributes-list)))))
;;  (setq tate (car(cddddr(car (car (display-monitor-attributes-list))))))
;; (set-frame-size
;;  (selected-frame);文字数を基準にしてサイズを決定しているのでframe-char-hogeで割り算をする必要がでてくる。
;;  (/(/ yoko (frame-char-width)) 2) ;横サイズ
;;  (- (/ (- tate 40) (frame-char-height)) 1)))
;;

(set-frame-size (selected-frame) (/(/(cadddr(car (car (display-monitor-attributes-list)))) (frame-char-width) ) 2) (- (/ (- (car(cddddr(car (car (display-monitor-attributes-list))))) 40) (frame-char-height)) 1))
;; frame sizeを縦横の文字数で指定。(display-monito-attributes-list)の第一成分を使っているのでメインモニターの半分の幅で高さはモニターに合わせて表示

(setq initial-frame-alist
       '((left . -1)        ; 位置 (X) 負の数なのでマイスから、つまり右側になっている。
        (top    .  10)      ; 位置 (Y)            
        ))
;;原形
;;(setq initial-frame-alist
;;       '((left  . 300)                 ; 位置 (X)
;;        (top    .  50)                  ; 位置 (Y)
;;        (width  . 200)                  ; サイズ(幅)
;;        (height .  90)                  ; サイズ(高さ)
;;        ))


;; ---
;; mininit.el (小型のウインドウ、--load ~/.emacs.d/mininit.el ファイル名で読み込ませる)
;; ---
;;(set-frame-size (selected-frame) (/(/(cadddr(car (car (display-monitor-attributes-list)))) (frame-char-width) ) 3) (-(/ (/ (- (car(cddddr(car (car (display-monitor-attributes-list))))) 40) (frame-char-height)) 2) 1))
;;(setq initial-frame-alist
;;       '((left .   300)
;;        (top    .  10)      ; 位置 (Y)            
;;        ))
;; ---minint.el ここまで



;; ----------------
;; key bind
;; ----------------
;; C-h
(global-set-key "\C-h" 'delete-backward-char)
;; comment out
(global-set-key "\C-c;" 'comment-dwim)
;; window operation
(global-set-key "\C-t" 'other-window)


;; ----
;; preferences
;; ----
;; 括弧を自動で補完する
(electric-pair-mode 1)
;; デフォルトの起動時のメッセージを表示しない
(setq inhibit-startup-message t)
;; 列の番号
(column-number-mode t)
;; 行番号の表示
(global-linum-mode t)
;; 1行ごとの改ページ
(setq scroll-conservatively 1)
;; 対応する括弧を光らせる
(show-paren-mode 1)
;; メニューバーの非表示
;;(menu-bar-mode -1)
;; ツールバーの非表示
;;(tool-bar-mode -1)
;; ⌘  キーを super として割り当てる
(setq mac-command-modifier 'super)
;; クリップボードへのコピー
(setq x-select-enable-clipboard t)
;; auto-complete(自動補完)
;;(require 'auto-complete-config)
;;(global-auto-complete-mode 0.5)
;; 現在ポイントがある関数名をモードラインに表示
(which-function-mode 1)
;; スクロールは1行ごとに
(setq mouse-wheel-scroll-amount '(1 ((shift) . 5)))
;; スクロールの加速をやめる
(setq mouse-wheel-progressive-speed nil)
;;バックアップを全て.ehistファイルに保存
(setq backup-directory-alist '((".*" . "~/.ehist")))

(require 'company)
(global-company-mode) ; 全バッファで有効にする 
(setq company-idle-delay 0) ; デフォルトは0.5
(setq company-minimum-prefix-length 2) ; デフォルトは4
(setq company-selection-wrap-around t) ; 候補の一番下でさらに下に行こうとすると一番上に戻る
(put 'upcase-region 'disabled nil)
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(package-selected-packages '(company-statistics)))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )

;;; Package.el config
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(unless (package-installed-p 'yatex)
  (package-refresh-contents) (package-install 'yatex))

(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist
      (append '(("\\.tex$" . yatex-mode)
        ("\\.ltx$" . yatex-mode)
        ("\\.sty$" . yatex-mode)) auto-mode-alist))

;; set YaTeX coding system
(setq YaTeX-kanji-code 4) ; UTF-8 の設定
(add-hook 'yatex-mode-hook
      '(lambda ()
         (setq YaTeX-use-AMS-LaTeX t) ; align で数式モードになる
         (setq YaTeX-use-hilit19 nil
           YateX-use-font-lock t)
         (setq tex-command "platex") ; typeset command
         (setq bibtex-command "pbibtex") ; typeset command	 
         ;(setq dvi2-command "evince") ; preview command
         (setq tex-pdfview-command "open"))) ; preview command

(setq YaTeX-math-sign-alist-private
 '(("Q" "mathbb{Q}" "(Q)")
   ("ZZ" "mathbb{Z}" "ZZ")
   ("R" "mathbb{R}" "R")
   ("C" "mathbb{C}" "C")
   ("N" "mathbb{N}" "N")
   ("Z>0" "mathbb{Z}_{>0}" "Z>0")
   ("|/" "\mid \hspace{-.67em}/" "|/")
   ("F" "mathbb{F}" "F")
   ("Fp" "mathbb{F}_p" "F_p")
   ("Fq" "mathbb{F}_q" "F_q")))

;;;reftex list
;;reftex-mode
(add-hook 'yatex-mode-hook
          #'(lambda ()
              (reftex-mode 1)
              (define-key reftex-mode-map
                (concat YaTeX-prefix ">") 'YaTeX-comment-region)
              (define-key reftex-mode-map
                (concat YaTeX-prefix "<") 'YaTeX-uncomment-region)))


(setq reftex-default-bibliography '("/Users/tomoki/Desktop/writing/list/"))

; YaTeX ショートカットの変更・設定
(setq yatex-mode-load-hook
'(lambda()
 (YaTeX-define-begend-key "be" "eqnarray")
;; (YaTeX-define-begend-key "be" "enumerate")
;; (YaTeX-define-begend-key "bt" "tabular")
;; (YaTeX-define-begend-key "bf" "figure")
; (YaTeX-define-begend-key "ba" "align")
))

;;; Spell
;;; brew install apell
;;; echo "lang en_US" >> ~/.aspell.conf
(setq-default ispell-program-name "aspell")
(eval-after-load "ispell"
'(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
(add-hook 'latex-mode-hook 'flyspell-mode)
;;YaTeXモードの時にのみflyspell-modeを起動
(mapc
 (lambda (hook)(add-hook hook '(lambda () (flyspell-mode 1))))
 '(yatex-mode-hook))