<!-- 譯者:Github@wizadforcel -->
# 基本的自定義 #
在我們感受到Atom中所有東西的便利之后,讓我們看看如何改進它。可能有一些快捷鍵你經常使用但是感覺很別扭,或者一些顏色不是十分適合你。Atom具有驚人的靈活性,所以讓我們對它做一些力所能及的簡單調整。
## 使用CSON來配置 ##
所有Atom的配置文件(除了你的樣式表和初始腳本)全部用CSON編寫,全稱是CoffeeScript Object Notation。就像JSON(JavaScript Object Notation)的名字一樣,CSON是一個儲存結構化數據的文本格式,表現為由鍵值對組成的簡單對象的形式。
```
key:
key: value
key: value
key: [value, value]
```
對象是CSON的基石,由縮進(像上面的文件那樣)或者花括號(`{}`)描述。一個鍵的值可以是字符串、數字、對象、布爾值、`null`或者上述數據類型的一個數組。
不像CSS的選擇器,CSON的鍵在每個對象中只能重復一次。如果存在重復的鍵,最后一次出現的那個會覆蓋其他所有同名的鍵。在Atom配置文件中也是如此。
避免這種情況:
```
# DON'T DO THIS
'.source.js':
'console.log':
'prefix': 'log'
'body': 'console.log(${1:"crash"});$2'
# Only this snippet will be loaded
'.source.js':
'console.error':
'prefix': 'error'
'body': 'console.error(${1:"crash"});$2'
```
而是要寫成這樣:
```
# DO THIS: Both of these will be loaded
'.source.js':
'console.log':
'prefix': 'log'
'body': 'console.log(${1:"crash"});$2'
'console.error':
'prefix': 'error'
'body': 'console.error(${1:"crash"});$2'
```
## 樣式調整 ##
如果你只是對個人樣式做一些應急的修改,而不打算發布整個主題,你可以在你的`~/.atom`目錄的`styles.less`文件中添加樣式。
你可以在編輯器中從`Atom > Open Your Stylesheet`菜單打開這個文件。

例如,要修改光標的顏色,你可以將一下規則添加到你的`~/.atom/styles.less`文件中:
```
atom-text-editor::shadow .cursor {
border-color: pink;
}
```
了解都有哪些class可用的最簡單方式,是通過開發者工具手動查看DOM。我們將在下一章詳細介紹這個工具,現在先簡單來看一下。
你可以通過按下`alt-cmd-I`來打開開發者工具,然后會彈出一個Chrome開發者工具面板。

你可以輕易查看到當前編輯器的所有元素。如果你想更新一些東西的樣式,你需要先知道它擁有哪個class,然后再你的樣式文件中添加一條Less規則。
如果你不熟悉Less,它是一個讓CSS變得更簡單的CSS預處理器,你可以訪問lesscss.org來了解關于它的更多信息。如果你更愿意使用CSS,這個文件也可以命名為styles.css來包含CSS。
## 自定義快捷鍵 ##
Atom從你`~/.atom`目錄中的`config.cson`文件中加載配置,它含有CoffeeScript格式的JSON,也就是CSON:
```
'core':
'excludeVcsIgnoredPaths': true
'editor':
'fontSize': 18
```
配置本身以包名分組,或者一兩個核心的命名空間,比如`core`和`editor`。
你可以從`Atom > Open Your Config`菜單在編輯器中打開它。
### 快捷鍵配置參考 ###
+ `core`
+ `disabledPackages`:被禁用的包名的一個列表
+ `excludeVcsIgnoredPaths`:不要加載`.gitignore`指定的文件
+ `ignoredNames`:在Atom中要忽略的文件名
+ `projectHome`:假定項目被存放的目錄
+ `themes`:要加載的主題名稱的數組,按照層疊順序
+ `editor`
+ `autoIndent`:開啟或關閉基本的自動縮進(默認為true)
+ `nonWordCharacters`:一個非單詞字符的字符串,來指定單詞邊界
+ `fontSize`:編輯器中的字體大小
+ `fontFamily`: 編輯器中的字體類型
+ `invisibles`: 一個Atom用來渲染空白字符的哈希表。鍵是空白字符的類型,值是被渲染成的字符(使用false來屏蔽單個的空白字符)
+ `tab`:硬tab字符
+ `cr`:回車(Carriage return,微軟風格的行末尾)
+ `eol:字符`\n`
+ `space`:在開頭或末尾的空格字符
+ `preferredLineLength`:設定一行的長度(默認為80)
+ `showInvisibles`:是否將不可見字符渲染為占位符(默認為false)
+ `showIndentGuide`:是否在編輯器中顯示縮進標識
+ `showLineNumbers`:顯示或者隱藏行號
+ `softWrap`:開啟或關閉編輯器中的軟換行
+ `softWrapAtPreferredLineLength`: 開啟或關閉在`preferredLineLength`處軟換行
+ `tabLength`:tab字符所占空格字符的寬度(默認為2)
+ `fuzzyFinder`
+ `ignoredNames`:只在模糊查找中忽略的文件名
+ `whitespace`
+ `ensureSingleTrailingNewline`:是否將文件末尾的多個換行減少為一個
+ `removeTrailingWhitespace`:開啟或關閉清除行尾的空白字符(默認為true)
+ `wrap-guide`
+ `columns`:帶有`pattern`和`column`鍵的數組,用來將當前編輯器的目錄匹配到列中的位置
## 語言特定配置 ##
你也可以為不同的文件類型設置幾種不同的配置。例如,你可能希望Atom在Markdown文件中軟換行,在ruby文件中將tab顯示為兩個空格的寬度,在python文件中顯示為4個空格的寬度。
下面是作用于語言的幾種選項,這是它們的列表:
```
editor.tabLength
editor.softWrap
editor.softWrapAtPreferredLineLength
editor.preferredLineLength
editor.scrollPastEnd
editor.showInvisibles
editor.showIndentGuide
editor.nonWordCharacters
editor.invisibles
editor.autoIndent
editor.normalizeIndentOnPaste
```
### 設置視圖中的語言特定配置 ###
你可以在設置視圖中的每個語言的包中,編輯這些配置。只要在左邊的面板搜索你選擇的語言,選擇它,并且編輯它就好了。

### 配置文件中的語言特定配置 ###
你也可以直接編輯實際的配置文件。通過在命令面板中輸入“open config”并按下回車來打開配置文件。
全局設置在`global`鍵的下面。每種語言都有他們自己的頂級鍵,這個鍵就是這種語言的作用域。語言特定的設置會覆蓋全局域的任何設置。
```
'global': # all languages unless overridden
'editor':
'softWrap': false
'tabLength': 8
'.source.gfm': # markdown overrides
'editor':
'softWrap': true
'.source.ruby': # ruby overrides
'editor':
'tabLength': 2
'.source.python': # python overrides
'editor':
'tabLength': 4
```
### 查找語言作用域的名字 ###
為了有效地編寫這種覆蓋的設置,你需要知道語言的作用域名稱。我們已經在“代碼段格式”一節中,為了編寫代碼段而做過一遍了,現在我們簡單地重復一下。
作于域的名稱顯示在設置視圖中的每個語言的包中。在左邊的面板中尋找你選擇的語言,選擇它,然后你會在語言名稱的標題下面看到作用域名稱:
