1 2##### Assignment 3 4### 1a Smart assign key ---------------------------------------------- 5 6foo¶ 7 8##! "_" 9 10foo <- ¶ 11 12##> "_" 13 14foo_¶ 15 16##> "_" 17 18foo_ <- ¶ 19 20 21### 1b Can set `ess-smart-S-assign` to nil at any time --------------- 22 23foo¶ 24 25##! (setq ess-smart-S-assign-key nil) 26##! "_" 27 28foo_¶ 29 30##> "_" 31 32foo__¶ 33 34##> (setq ess-smart-S-assign-key "_") ; Reset 35##> "_" 36 37foo__ <- ¶ 38 39 40### 2 Unbinding smart key -------------------------------------------- 41 42foo¶ 43 44##! (define-key ess-mode-map "_" nil) 45##! "_" 46 47foo_¶ 48 49##> (define-key ess-mode-map "_" #'ess-smart-S-assign) ; Reset 50##> "_" 51 52foo_ <- ¶ 53 54 55### 3a Binding `ess-insert-assign` to simple key --------------------- 56 57foo¶ 58 59##! (define-key ess-mode-map ";" #'ess-insert-assign) 60##! ";" 61 62foo <- ¶ 63 64##> ";" 65 66foo;¶ 67 68##> ";" 69 70foo; <- ¶ 71 72 73### 3b Binding `ess-insert-assign` to simple key with nil smart key -- 74 75foo¶ 76 77##! (setq ess-smart-S-assign-key nil) 78##! ";" 79 80foo <- ¶ 81 82##> ";" 83 84foo;¶ 85 86##> (define-key ess-mode-map ";" nil) ; Reset 87##> (setq ess-smart-S-assign-key "_") ; Reset 88##> ";" 89 90foo;;¶ 91 92 93### 3c Binding `ess-insert-assign` to complex key -------------------- 94 95foo¶ 96 97##! (let ((map (make-sparse-keymap))) 98##! (define-key map (kbd "M--") #'ess-insert-assign) 99##! (use-local-map map)) 100##! "M--" 101 102foo <- ¶ 103 104##> "M--" 105 106foo-¶ 107 108 109### 4 `ess-insert-assign` uses `ess-assign-list` --------------------- 110 111foo¶ 112 113##! (setq-local ess-assign-list '(" <~ ")) 114##! "_" 115 116foo <~ ¶ 117 118##> "_" 119 120foo_¶ 121 122##> "_" 123 124foo_ <~ ¶ 125 126