概要
この投稿では, Vim エディタの使い方について説明する.
目標は,Vim の最低限の使い方を習得することである.
環境は Cygwin 上にインストールされた Vim を対象としている (※ Cygwin でなくとも同じ Vim であれば操作は変わらないはず).Cygwin のパッケージについて,個別に吟味してインストールするのは手間なので,すべてインストールした.
なお,この記事は,(状況に習得を強要された) Vim 1 日目の素人によって綴られたことを明記しておく.
unsigned int32型などを利用したければ,多少工夫する必要がある.
例えば,1 文字ずつ (1 Byte単位で) 読み込んだデータを,bit 演算で 8 Byte分の文字列を結合することも可能ではあるが,できればそのまま読み込みたい.import numpy FileDir = "./example.bin" fp = open(FileDir,"rb") data = numpy.fromfile(fp, numpy.int32, 1) print("0x%08X" % data)
$ python -u example.py 0x000003E8
深層学習 (機械学習プロフェッショナルシリーズ) 著者: 岡谷 貴之 出版社: 講談社 発売日: 2015/04/08 メディア: 単行本 ページ数: 176 ページ
![]()
数値計算 [新訂版] (サイエンスライブラリ理工系の数学) 著者: 洲之内 治男, 石渡 恵美子 出版社: サイエンス社 発売日: 2002/05 メディア: 単行本 ページ数: 167 ページ
![]()
| 【語句】 | リポジトリ | : プロジェクトのこと (ソースコードのまとまり) |
| Bitbucket | : Git が利用できるリモートリポジトリの一つ.GitHub と異なり,無料で非公開にすることができる | |
| (ただし,一つのプロジェクトに対して,登録できる人数は 5 名までに限られる) |
\usepackage{newtxtext,newtxmath}
; このファイルは emacs の設定ファイルです.
; emacs の設定ファイルではセミコロン ';' 以降の文字がコメントとして扱われます.
; ファイル名を指定して起動した場合でも,分割 2 画面にしない.
(setq inhibit-startup-message t)
; バックアップファイルを作成しない
(setq make-backup-files nil)
; 自動保存を無効
(setq auto-save-default nil)
(keyboard-translate ?\C-h ?\C-?); \C-h: Delete
(keyboard-translate ?\216 ?\C-\S-n);\C-\S-n: [\C-\S-n]でも選択しながら下へ移動できるようにする
(keyboard-translate ?\220 ?\C-\S-p);\C-\S-p: [\C-\S-p]でも選択しながら下へ移動できるようにする
(keyboard-translate ?\206 ?\C-\S-f);\C-\S-f: 前方向に選択
(keyboard-translate ?\202 ?\C-\S-b);\C-\S-b: 後ろ方向に選択
(keyboard-translate ?\227 ?\S-\M-f);\C-\S-w: 単語単位で前方向に選択.[\M-\S-f]に同じ
(keyboard-translate ?\221 ?\S-\M-b);\C-\S-q: 単語単位で後ろ方向に選択.[\M-\S-b]に同じ
(keyboard-translate ?\201 ?\C-\S-a);\C-\S-a: カーソルから先頭まで選択
(keyboard-translate ?\205 ?\C-\S-e);\C-\S-e: カーソルから末尾まで選択
(keyboard-translate ?\203 ?\M-w);\C-\S-c: コピー
(keyboard-translate ?\226 ?\C-y);\C-\S-v: 貼り付け
(keyboard-translate ?\230 ?\C-w);\C-\S-x: 切り取り
(keyboard-translate ?\232 'undo);\C-\S-z: undo
;(global-set-key "\C-z" 'undo);UndoをCtr+z でもできるようにする
;; init.el だけに設定されてしまう
(setq c-basic-offset 4)
;; ホックを使った設定
;(defun my-c-c++-mode-init ()
; (setq c-basic-offset 4)
; )
;(add-hook 'c-mode-hook 'my-c-c++-mode-init)
;(add-hook 'c++-mode-hook 'my-c-c++-mode-init)
;(setq-default tab-width 2 indent-tabs-mode nil); タブにスペースを使用する
(setq default-tab-width 4);タブの表示幅の設定
;(setq indent-tabs-mode nil)
;(keyboard-translate ?\t ?\M-i);\C-q \t: タブキーを何が何でも tab キーとして入力するための設定.[タブの入力方法: Ctrl-i/ESC-i/Alt-iのいずれか,または,Ctrl-qでエスケープしてTABキーで入力];これだと 1 タブ = 8 スペースにしないと,1 タブで 1 タブ 4 スペースが 2 つ挿入される
;(setq c-tab-always-indent t); タブ (よくあるタブの設定,上記設定と競合するため注意)
;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")
(global-linum-mode t);行番号の表示
(setq linum-format "%4d ");行番号との間に1スペース挿入する
(delete-selection-mode t);リージョンを削除できるようにする
(setq scroll-conservatively 1); スクロールを1行ごとにする
(global-set-key "\M-n" (lambda () (interactive) (scroll-up 1)));スクロール
(global-set-key "\M-p" (lambda () (interactive) (scroll-down 1)));スクロール
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://myemacs.readthedocs.io/ja/latest/basic-customize.html
;; xterm のマウスイベントを取得する
(xterm-mouse-mode t)
;; マウスホイールを取得する
(mouse-wheel-mode t)
;; ホイールでポインタを移動できるようにする
;(global-set-key [mouse-4] (kbd "C-p"))
;(global-set-key [mouse-5] (kbd "C-n"))
;; ポインタの移動ではなくて画面をスクロールさせたい場合はこっち
(global-set-key [mouse-4] '(lambda () (interactive) (scroll-down 6)))
(global-set-key [mouse-5] '(lambda () (interactive) (scroll-up 6)))
;;;; カーソルのある行のハイライトを有効にする
;(global-hl-line-mode t)
;; ハイライトの色を設定します
;(custom-set-faces '(hl-line ((t (:background "dark gray")))));; これが上手く動かない
(setq hl-line-face '(background "dark gray"))
;; ハイライトのスタイルをアンダーラインにします
;; ただしアンダーバーが見えづらくなる問題があります
;(setq hl-line-face 'underline)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://d.hatena.ne.jp/khiker/20070409/emacs_hl_line
;; 現在行をハイライト
;(global-hl-line-mode t)
;(defface my-hl-line-face
; '((((class color) (background dark)) ; カラーかつ, 背景が dark ならば,
; (:background "DarkSlateBlue" t)) ; 背景を黒に. ; ここ,動作はするが,#FFFFFF で任意の色を指定できないのでダメ.
; (((class color) (background light)) ; カラーかつ, 背景が light ならば,
; (:background "ForestGreen" t)) ; 背景を ForestGreen に.
; (t (:bold t)))
; "hl-line's my face")
;(setq hl-line-face 'my-hl-line-face)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://keisanbutsuriya.hateblo.jp/entry/2015/02/01/162035
(show-paren-mode t) ;; 対応する括弧をハイライト
(setq show-paren-style 'parenthesis) ;対応する括弧だけをハイライト
;(setq show-paren-style 'expression) ;括弧で囲まれた部分をハイライト
(setq show-paren-style 'mixed) ;画面内に対応する括弧がある場合は括弧だけを,ない場合は括弧で囲まれた部分をハイライト
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(keyboard-translate ?\C-\S-b ?\S-\M-b)
;(global-set-key "\C-h" 'delete-backward-char)
;;; 画面右端で折り返さない
(setq-default truncate-lines t)
(setq truncate-partial-width-windows t)
(setq x-select-enable-clipboard t);OSとクリップボードを共有(これだと上手く動作していない. Cygwin だから?)
; for clipborad
(setq sysname system-type)
(if (eq sysname 'darwin)
(progn
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx)
)
(message "This platform is not mac")
)
(if (eq sysname 'cygwin)
(progn
(defun paste-from-cygwin ()
(with-temp-buffer
(insert-file-contents "/dev/clipboard")
(buffer-string)))
(defun cut-to-cygwin (text &optional push)
(with-temp-file "/dev/clipboard"
(insert text)))
(setq interprogram-cut-function 'cut-to-cygwin)
(setq interprogram-paste-function 'paste-from-cygwin)
)
(message "This platform is not cygwin")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(add-hook 'c-mode-hook
; '(lambda ()
; (c-toggle-electric-state -1)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\C: Ctrl
$mv emacs.txt .emacs
のようにして,ファイル名を変更すると良い.