Emacs-010-C语言缩进使用Tab且显示为4字符宽度
2017-12-27 20:39
253 查看
Emacs-010-C语言缩进使用Tab且显示为4字符宽度
Emacs的缩进可真让我头疼,昨天晚上看了半晚上,今天白天又花了不少时间还是没有做到完美。但是,在C语言中这部分功能已经初步实现了我想要的结果。
实现目标:
1. 输入Tab键后不会立即被空格替换;
2. Tab的宽度显示为4个字符宽度;
3. 自动缩进修整的功能尽量关闭,这样能够在退格的时候一次把Tab缩进全部删除。
这样,需要实现的功能如下:
1. 输入Tab键的手插入的只有一个Tab
最初这部分我尝试了几个别人的配置没有弄明白,后来找到了一篇不错的文章找到了相应的解释如下:
What should be inserted when I press the TAB key?
True TAB characters only
Spaces only
A combination of TABs and spaces (default)
Tab按键输入的结果不过是上面的几种,我需要的自然是第一个。具体的实现方式如下:
(global-set-key(kbd "TAB") 'self-insert-command)
2. 接下来,把Tab设置为显示为4个字符宽度。实现方式:
(setqdefault-tab-width 4)
3. 上面的方式实现后,编辑一般文件已经可以。但是编辑C文件会被传说中的智能缩进给破坏。解决方式是配置C语言的编辑模式,实现方式如下:
(defunmy-c-mode-hook ()
(setq c-basic-offset 4
c-indent-level 4
c-default-style "bsd"))
(add-hook'c-mode-common-hook 'my-c-mode-hook)
4. 经过上面三部,在编辑缩进上已经基本实现了想要的效果。但是退格删除依然需要四次,接下来再进行一次改进修改。增加下面的配置:
(setqbackward-delete-char-untabify-method nil)
这样,整个的配置模块就是如下的情况:
(global-set-key(kbd "TAB") 'self-insert-command)
(setqdefault-tab-width 4)
(setqbackward-delete-char-untabify-method nil)
(defunmy-c-mode-hook ()
(setq c-basic-offset 4
c-indent-level 4
c-default-style "bsd"))
(add-hook'c-mode-common-hook 'my-c-mode-hook)
经过10次配置之后,我的Emacs配置文件如下:
(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.
)
(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.
'(default ((t (:family "Courier New":foundry "outline" :slant normal :weight normal :height 98 :widthnormal)))))
;; Disable files backup function
(setq make-backup-files nil)
(setq line-number-mode t)
(global-linum-mode t)
;; Config Tab
;;;; This will force Tab to be just oneTab.
(global-set-key (kbd "TAB")'self-insert-command)
(setq default-tab-width 4)
(setq backward-delete-char-untabify-methodnil)
(defun my-c-mode-hook ()
(setq c-basic-offset 4
c-indent-level 4
c-default-style "bsd"))
(add-hook 'c-mode-common-hook'my-c-mode-hook)
Emacs的缩进可真让我头疼,昨天晚上看了半晚上,今天白天又花了不少时间还是没有做到完美。但是,在C语言中这部分功能已经初步实现了我想要的结果。
实现目标:
1. 输入Tab键后不会立即被空格替换;
2. Tab的宽度显示为4个字符宽度;
3. 自动缩进修整的功能尽量关闭,这样能够在退格的时候一次把Tab缩进全部删除。
这样,需要实现的功能如下:
1. 输入Tab键的手插入的只有一个Tab
最初这部分我尝试了几个别人的配置没有弄明白,后来找到了一篇不错的文章找到了相应的解释如下:
What should be inserted when I press the TAB key?
True TAB characters only
Spaces only
A combination of TABs and spaces (default)
Tab按键输入的结果不过是上面的几种,我需要的自然是第一个。具体的实现方式如下:
(global-set-key(kbd "TAB") 'self-insert-command)
2. 接下来,把Tab设置为显示为4个字符宽度。实现方式:
(setqdefault-tab-width 4)
3. 上面的方式实现后,编辑一般文件已经可以。但是编辑C文件会被传说中的智能缩进给破坏。解决方式是配置C语言的编辑模式,实现方式如下:
(defunmy-c-mode-hook ()
(setq c-basic-offset 4
c-indent-level 4
c-default-style "bsd"))
(add-hook'c-mode-common-hook 'my-c-mode-hook)
4. 经过上面三部,在编辑缩进上已经基本实现了想要的效果。但是退格删除依然需要四次,接下来再进行一次改进修改。增加下面的配置:
(setqbackward-delete-char-untabify-method nil)
这样,整个的配置模块就是如下的情况:
(global-set-key(kbd "TAB") 'self-insert-command)
(setqdefault-tab-width 4)
(setqbackward-delete-char-untabify-method nil)
(defunmy-c-mode-hook ()
(setq c-basic-offset 4
c-indent-level 4
c-default-style "bsd"))
(add-hook'c-mode-common-hook 'my-c-mode-hook)
经过10次配置之后,我的Emacs配置文件如下:
(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.
)
(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.
'(default ((t (:family "Courier New":foundry "outline" :slant normal :weight normal :height 98 :widthnormal)))))
;; Disable files backup function
(setq make-backup-files nil)
(setq line-number-mode t)
(global-linum-mode t)
;; Config Tab
;;;; This will force Tab to be just oneTab.
(global-set-key (kbd "TAB")'self-insert-command)
(setq default-tab-width 4)
(setq backward-delete-char-untabify-methodnil)
(defun my-c-mode-hook ()
(setq c-basic-offset 4
c-indent-level 4
c-default-style "bsd"))
(add-hook 'c-mode-common-hook'my-c-mode-hook)
相关文章推荐
- Emacs-127-spacemacs中C++编程使用4字符宽度缩进
- Vi||Vim显示行号,自动缩进,调整tab键宽度技巧
- 采用 4 个空格缩进,禁止使用 tab字符
- 在C语言中使用wchar_t等宽字符显示中文测试
- linux系统下Vi编辑器或者Vim编辑器设置显示行号、自动缩进、调整tab键宽度的技巧?
- VI 字体高亮显示 自动缩进的设置 TAB 4格
- Emacs的Tab键与缩进
- 抄书:C语言中字符类型使用中的几个误区
- 基于DS1302芯片---使用51单片机C语言编制的电子时钟(液晶1602显示)
- android 中超出屏幕宽度的字符 省略号显示
- CentOS中root使用Vi不能高亮显示的解决办法以及TAB补全命令
- c++使用wcout显示中文字符
- 如何使用sencha-touch控件显示平板上的tab界面
- 设置vim的自动缩进,tab四格和显示行号
- Emacs中设置的显示宽度
- Button按钮实现 向左或向右 缩进字符并显示在首部(尾部)(技术改变世界-cnblog)
- LaTeX中使用对C语言代码高亮显示
- 使用SQL查询分析器查询显示最大只有256个字符的解决办法
- android textview 中超出屏幕宽度的字符 省略号显示
- 【我解C语言面试题系列】010 从相应位置开始删除指定字符串的相应个字符