有哪些使用 Eclipse 的好習慣或者小技巧?
謝謝大家的回答,活到老學到老。
有一招可以讓自動補全用起來更「自動」。好不好用取決於自己的習慣。
在主菜單的:Window -&> Preferences -&> Java/Editor/Content Assist
把"Autocomplete Trigger for Java"配置為:
.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
(默認值是一個「.」)
並且把Auto activation delay降低(例如說降低到0或者100ms)。
具體配置哪些字母作為trigger看自己需求怎樣。例如下面評論里有提到可以添加「@」來給annotation也提供自動補全。這招是在淘寶做Java碼農的時候同事教的,舒服。
實際使用要稍微習慣一下。這樣配置之後Eclipse很可能會在你不需要自動補全的時候也給你補完,或者是你已經輸入了一個單詞然後按空格的時候給你補全了不正確的東西。此時要善用箭頭或者esc來應對。更詳細的解釋請參考:Eclipse Content Assist Activation (Visual Studio IntelliSense Like Behavior)
==========================================================
然後還有我以前自己用的黑色配色:[自用] 現在用的Eclipse色彩配置
可惜那個配置文件很多人都說用不了。我以前自己用的具體文件是放在workspace里的,每次需要新建workspace我都直接拷貝一個現成的?嘛反正新版本的Eclipse有更多人在搞黑色配色了,懶得更新我以前用的那個?
Ctrl+1 快速修復(最經典的快捷鍵,就不用多說了)
Ctrl+D: 刪除當前行 Ctrl+Alt+↓ 複製當前行到下一行(複製增加)Ctrl+Alt+↑ 複製當前行到上一行(複製增加)Alt+↓ 當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)Alt+↑ 當前行和上面一行交互位置(同上)Alt+← 前一個編輯的頁面Alt+→ 下一個編輯的頁面(當然是針對上面那條來說了)Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性Shift+Enter 在當前行的下一行插入空行(這時滑鼠可以在當前行的任一位置,不一定是最後)
Shift+Ctrl+Enter 在當前行插入空行(原理同上條)Ctrl+Q 定位到最後編輯的地方Ctrl+L 定位在某行 (對於程序超過100的人就有福音了)Ctrl+M 最大化當前的Edit或View (再按則反之)Ctrl+/ 注釋當前行,再按則取消注釋Ctrl+O 快速顯示 OutLineCtrl+T 快速顯示當前類的繼承結構Ctrl+W 關閉當前EditerCtrl+K 參照選中的Word快速定位到下一個Ctrl+E 快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)
Ctrl+/(小鍵盤) 摺疊當前類中的所有代碼Ctrl+×(小鍵盤) 展開當前類中的所有代碼Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有衝突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)Ctrl+J 正向增量查找(按下Ctrl+J後,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從後往前查)Ctrl+Shift+F4 關閉所有打開的EditerCtrl+Shift+X 把當前選中的文本全部變味小寫Ctrl+Shift+Y 把當前選中的文本全部變為小寫Ctrl+Shift+F 格式化當前代碼
Ctrl+Shift+P 定位到對於的匹配符(譬如{}) (從前面定位後面時,游標要在匹配符裡面,後面到前面,則反之)下面的快捷鍵是重構裡面常用的,本人就自己喜歡且常用的整理一下(注:一般重構的快捷鍵都是Alt+Shift開頭的了)
Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變數和類的Rename,比手工方法能節省很多勞動力)Alt+Shift+M 抽取方法 (這是重構裡面最常用的方法之一了,尤其是對一大堆泥團代碼有用)Alt+Shift+C 修改函數結構(比較實用,有N個函數調用了這個方法,修改一次搞定)Alt+Shift+L 抽取本地變數( 可以直接把一些魔法數字和字元串抽取成一個變數,尤其是多處調用的時候)Alt+Shift+F 把Class中的local變數變為field變數 (比較實用的功能)Alt+Shift+I 合併變數(可能這樣說有點不妥Inline)Alt+Shift+V 移動函數和變數(不怎麼常用)Alt+Shift+Z 重構的後悔葯(Undo)
編輯
作用域 功能 快捷鍵 全局 查找並替換 Ctrl+F 文本編輯器 查找上一個 Ctrl+Shift+K 文本編輯器 查找下一個 Ctrl+K 全局 撤銷 Ctrl+Z 全局 複製 Ctrl+C 全局 恢復上一個選擇 Alt+Shift+↓ 全局 剪切 Ctrl+X全局 快速修正 Ctrl1+1
全局 內容輔助 Alt+/ 全局 全部選中 Ctrl+A 全局 刪除 Delete 全局 上下文信息 Alt+?Alt+Shift+?Ctrl+Shift+Space Java編輯器 顯示工具提示描述 F2 Java編輯器 選擇封裝元素 Alt+Shift+↑ Java編輯器 選擇上一個元素 Alt+Shift+←Java編輯器 選擇下一個元素 Alt+Shift+→
文本編輯器 增量查找 Ctrl+J 文本編輯器 增量逆向查找 Ctrl+Shift+J 全局 粘貼 Ctrl+V 全局 重做 Ctrl+Y查看
作用域 功能 快捷鍵 全局 放大 Ctrl+= 全局 縮小 Ctrl+-窗口
作用域 功能 快捷鍵 全局 激活編輯器 F12 全局 切換編輯器 Ctrl+Shift+W 全局 上一個編輯器 Ctrl+Shift+F6 全局 上一個視圖 Ctrl+Shift+F7 全局 上一個透視圖 Ctrl+Shift+F8 全局 下一個編輯器 Ctrl+F6 全局 下一個視圖 Ctrl+F7 全局 下一個透視圖 Ctrl+F8 文本編輯器 顯示標尺上下文菜單 Ctrl+W 全局 顯示視圖菜單 Ctrl+F10 全局 顯示系統菜單 Alt+-導航
作用域 功能 快捷鍵 Java編輯器 打開結構 Ctrl+F3 全局 打開類型 Ctrl+Shift+T 全局 打開類型層次結構 F4 全局 打開聲明 F3 全局 打開外部javadoc Shift+F2 全局 打開資源 Ctrl+Shift+R 全局 後退歷史記錄 Alt+← 全局 前進歷史記錄 Alt+→ 全局 上一個 Ctrl+, 全局 下一個 Ctrl+. Java編輯器 顯示大綱 Ctrl+O 全局 在層次結構中打開類型 Ctrl+Shift+H 全局 轉至匹配的括弧 Ctrl+Shift+P 全局 轉至上一個編輯位置 Ctrl+Q Java編輯器 轉至上一個成員 Ctrl+Shift+↑ Java編輯器 轉至下一個成員 Ctrl+Shift+↓ 文本編輯器 轉至行 Ctrl+L搜索
作用域 功能 快捷鍵 全局 出現在文件中 Ctrl+Shift+U 全局 打開搜索對話框 Ctrl+H 全局 工作區中的聲明 Ctrl+G 全局 工作區中的引用 Ctrl+Shift+G文本編輯
作用域 功能 快捷鍵 文本編輯器 改寫切換 Insert 文本編輯器 上滾行 Ctrl+↑ 文本編輯器 下滾行 Ctrl+↓文件
作用域 功能 快捷鍵 全局 保存 Ctrl+X Ctrl+S 全局 列印 Ctrl+P 全局 關閉 Ctrl+F4 全局 全部保存 Ctrl+Shift+S 全局 全部關閉 Ctrl+Shift+F4 全局 屬性 Alt+Enter 全局 新建 Ctrl+N項目
作用域 功能 快捷鍵 全局 全部構建 Ctrl+B源代碼
作用域 功能 快捷鍵 Java編輯器 格式化 Ctrl+Shift+F Java編輯器 取消注釋 Ctrl+ Java編輯器 注釋 Ctrl+/ Java編輯器 添加導入 Ctrl+Shift+M Java編輯器 組織導入 Ctrl+Shift+O Java編輯器 使用try/catch塊來包圍 未設置,太常用了,所以在這裡列出,建議自己設置。也可以使用Ctrl+1自動修正。運行
作用域 功能 快捷鍵 全局 單步返回 F7 全局 單步跳過 F6 全局 單步跳入 F5 全局 單步跳入選擇 Ctrl+F5 全局 調試上次啟動 F11 全局 繼續 F8 全局 使用過濾器單步執行 Shift+F5 全局 添加/去除斷點 Ctrl+Shift+B 全局 顯示 Ctrl+D 全局 運行上次啟動 Ctrl+F11 全局 運行至行 Ctrl+R 全局 執行 Ctrl+U重構
作用域 功能 快捷鍵 全局 撤銷重構 Alt+Shift+Z 全局 抽取方法 Alt+Shift+M 全局 抽取局部變數 Alt+Shift+L 全局 內聯 Alt+Shift+I 全局 移動 Alt+Shift+V 全局 重命名 Alt+Shift+R PS:(轉載自不記得哪裡的文檔)說幾個我常用的吧:
Ctrl+shift+ f 自動格式化代碼。可以在preference里配置代碼格式模板
ctrl+shift+o 自動調整 import 部分 (cdt里可以調整#include, 但是不是百分百可靠)
Ctrl +shift+t 查找並打開類文件
alt+shift+r 打開指定文件名
Ctrl +f6 編輯器之間切換
cdt里, Ctrl+tab 在cpp 和 h 文件之間切換
f3 進入類型定義文件
alt + left/right 前進或後退瀏覽過的位置
Ctrl + shift +g 查找所以游標所在類型出現的位置
alt + shift +r 重命名某個類型或方法
先寫這麼多,想起來再補充1。自動補全。windows下默認是alt-/。與代碼補全(ctrl-空格)不同,自動補全就類似在windows cmd中按tab。根據你已鍵入的內容在當前文件中選取已出現過的單詞,優先選取離當前位置最近的單詞。用來補剛剛用過的變數名命中率很高,省一下回車鍵且在大項目中不會卡。如果第一次補全沒命中可以繼續按alt-/循環查找。
2。把重構中的"抽取局部變數"和"抽取方法"綁到順手的快捷鍵上。寫賦值語句時先寫右邊的表達式,然後抽取變數,再輸入變數名,可以省下輸入變數類型。寫複雜方法時,一些相對獨立的內部邏輯,可以直接寫實現,然後立刻抽取方法再輸入方法名,可以省下輸入參數表。
3。裝vim插件,加上交換選區內容(http://vrapper.sourceforge.net/documentation/?topic=optional_plugins#exchange)和選中方法參數(http://vrapper.sourceforge.net/documentation/?topic=optional_plugins#argtext)的移植vim插件。3.1 在vim插件中使用:set so=5命令保證滾屏時有5行預覽內容。3.2 安裝gvim後,在vim插件中可配置一鍵在gvim中打開當前文件且保證游標位置與當前一致。換言之你可以臨時轉到gvim中在當前位置上做一些複雜的操作,然後:wq返回到eclipse中繼續編輯。在&:set gvimpath=C:Program Files (x86)vimvim74gvim.exe
:set gvimargs={file} "+norm {line}G0{col}lhzz"
:nnoremap &
=========================
最後附上我的_vrapperrc供參考:set so=5
:set ic
:set scs
:set hls
:set softtabstop=4
:set tabstop=4
:set shiftw=4
:set gvimpath=C:Program Files (x86)vimvim74gvim.exe
:set gvimargs={file} "+norm {line}G0{col}lhzz"
:inoremap &
:inoremap &
:inoremap &
:nnoremap L $
:nnoremap H ^
:nnoremap &
:nnoremap gd &
用package,而不是Project。
如果Maven中編譯不過去,CloseProject,OpenProject。Clean項目空間,總有一款適合你。經常遇到明明沒錯誤卻滿屏紅叉,隨便找個文件重新保存一下就好了。Console台最好拖在底部。不要讓他來回跳。@RednaxelaFX 這個回答主要是作為解決R大大提到的那個eclipse中按空格/Tab鍵也會錯誤觸發補全的問題的補充。那個問題也困擾了我一段時間。該方法親測可用!修改方法:1,下載相關源碼
eclipse是基於插件機制而且是開源的。content assist插件對應的plugin是org.eclipse.jface.text.但是現在的eclipse發行版只有classic版本是帶有源碼的,所以如果你用的eclipse不是classic版的,需要下載對應的source包。筆者沒有找到在哪可以單獨下載這個包,只有下載整個的classic版本,把這個包單獨複製出來(eclipse/plugins/org.eclipse.jface.text_3.8.2.v20121126-164145.jar 和eclipse/plugins/org.eclipse.jface.text.source_3.8.2.v20121126-164145.jar)。當然不複製都沒關係。
2,導入plugin打開eclipse,import–plug-ins and Fragments, 接下來會有導入的對話框,在下部分import as 選中Projects with source folders, 上面import from 選擇Directory為兩個jar所在的目錄即可。
3,修改源碼導入的工程下修改「org.eclipse.jface.text.contentassist.CompletionProposalPopup#verifyKey()」函數,看到有一段代碼為 switch(key) 分別處理ESC Enter tab等情況,有一個default分支如下:
default:
ICompletionProposal p= getSelectedProposal();
if (p instanceof ICompletionProposalExtension) {
CompletionProposalExtension t= (ICompletionProposalExtension) p;
char[] triggers= t.getTriggerCharacters();
t.getTriggerCharacters();
if (contains(triggers, key)) {
e.doit= false;
hide();
insertProposal(p,key,e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
}
}
在default分支的功能是當代碼提示框存在的時候,測試當前按鍵是否在triggers列表中,如果在的話,就把當前選中提示的自動插入到代碼中。triggers列表不是固定的,它會根據上下文確定,一般可能有』 『,』&<』, 『t』,』.』 ,『(『, 『;』等。所以可以修改
if (contains(triggers, key))
判斷條件,把不想要的屏蔽掉,如改為
if (key != 』 』 key != 』=" key != 』;" contains(triggers, key))
注意回車鍵選擇是在上面的case分支中的。如果只需要保留回車選擇,還可以把整個default分支刪除。
4,導出並替換原pluginexport–Deployable plug-ins and fragments,替換原jar包即可。
方法來源自網路。小院孤獨 | Eclipse 定製content assist
Eclipse定製Content Assist代碼補全功能
定製Eclipse的Content assist(代碼補全),比如空格鍵不上屏
ctrl+t來看類的繼承關係;alt+shift+m把一段代碼提取成一個函數,如果被提取的這段代碼片段在當前文件有n個地方,那麼這n個地方都會被重構,所以是非常方便的重構神器。其他的…快忘了,周一去回憶下再來補吧~========================補充================================
alt + 方向鍵(上下)
很方便的將選中代碼移到某行,相當於ctrl+x 和ctrl+c組合操作
alt + 方向鍵(左右)
alt滑鼠左鍵之後進入到選中變數or方法的文件,然後可以用alt+左切回原來選中的地方,調試的時候很好用
ctrl + shift + o
向當前文件中加入
需要import的類,會去掉多餘的import
效果圖:
Eclipse Class Decompiler一個很不錯的反編譯插件,調試的時候可以直接看到源碼,不過好像要翻牆才能裝~
自動補全@RednaxelaFX@kidneyball都已經介紹過了,我以前在「Autocomplete Trigger for Java」中配置「.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ」,後來改用快捷鍵「alt + /」外觀
- 使用YaHei.Consolas字體,Eclipse默認的字體中文支持很挫:
- 使用Eclipse Color Theme插件,有很多編輯器的主題,推薦(Mellow Yellow)這款,截圖效果如下:
- 代碼格式化樣式,通過:「Preference-&>Java-&>Code Style-&>Formatter」,可以設置代碼格式化的樣式,其中在「Line Wrapping」中設置「Maximum line width」,可以實現代碼多長才換行,達到在大屏幕下一行顯示更多的代碼。(我的19寸顯示器,設置為120)
插件
- MouseFeed:@雷博提到了Eclipse常用的一些快捷鍵,這裡推薦一款快捷鍵提示插件MouseFeed,
例如:當我手動停止Tomcat的時候,插件會提示我使用 Ctrl+Alt+S,如下圖:
- JRebel for Eclipse:實現真正意義上的熱部署,不過是收費的;
其他
- 啟動:通過在「Preference-&>General-&>Startup and ShutDown」設置啟動激活的插件,沒必要的可以全部去掉;在「Preference-&>General-&>Startup and ShutDown-&>Workspaces」中,去掉勾選 「Prompt for workspace on startup」,可以在Eclipse啟動的時候去掉選擇workspace的提示。
最好的好習慣不是趕緊切到IntelliJ?
1.針對R神說的在自動補全中遇到的按空格時「不需要自動補全的時候也給你補完」的問題,解決有點麻煩,請看這個鏈接→_→關閉Eclipse按空格和等號鍵自動補全內容_JavaEclipse_Java-ITnose
@林子云 在本問題中也提供了相同的解決方案~2.在Window -&> Preferences -&> Java/Editor/Save Action中,勾選Perform the select actions on save,然後有 Format source code , Organize import , Additional actions 可以選擇。
就是當你按 Ctrl+S (保存)時,會自動格式化代碼,自動刪去未使用的包,自動添加註解,不必再用Shift+Ctrl+F,Shift+Ctrl+O了~3.在扁平化時代,這種風格很過時了誒在Window -&> Preferences -&> General/Appearance/Color and Fonts中的View and Edit Folders上改改吧(*^__^*) 瞬間扁平化了有木有!4.調試瀏覽器換成系統默認的~
5.打開 Toolbar 中的 Toggle Breadcrumb,用起來很方便~
6.把不經常用的Project關掉(在Project上右鍵選擇Close Project),這樣打開Eclipse快一丟丟~謝謝小躍躍的邀請~ @楊躍
我粗略看了一下所有回答,好像還有幾個大家沒注意到的,我就做做補充咯。當然啦,其實主要是說給小躍躍童鞋聽的~建立一個javabean(也就是常說的model類啦),建立好屬性
比如說private String name;private int age;之類的然後,注意,奇蹟要出現了!滑鼠右鍵--Source--Generate Getters and Setters--Select all--OK嘩啦啦啦,一大堆get set方法就弄好啦~同理,再試試生成構造方法? 嘿嘿 我就不多說啦。
另外,再說一個快速搜索方法在哪兒被調用的操作。
比方說,一個類裡面有一個方法叫做public void setTMDUsernameAndPassword(String username, String password) {}想要知道它在哪裡被誰調用了,只需選中setTMDUsernameAndPassword,滑鼠右鍵--References--Project嘩啦啦啦,在另外一個自動彈出來的視圖裡就知道它在哪裡被調用啦。但是這個操作有一個局限性,就是只能搜到調用它的地方,而無法搜索到最源頭,所以要搜索到源頭怎麼弄呢。滑鼠右鍵--References--Hierarchy效果嘛,我不描述啦,試一試就知道了啦~嘰里呱啦說了一大堆,然並卵。
因為我現在很少用eclipse啦,除了Android幾乎都不怎麼使用eclipse,ios用xcode,其他所有語言都用Sublime Text2。其實Android也在嘗試著使用AS,eclipse真是太TMD的占內存了啊。把快捷鍵綁定為Emacs風格
換IntelliJ IDEA。其實這不算是抖機靈吧,我們選擇IDE的時候最重要的當然是最大化生產力。Eclipse能做到的Intellij基本也能做到,J2EE, Python, Web等等。反過來說Intellij提供的features你在eclipse沒法感受到,詳見下面的安利指南。附IntelliJ安利指南:IntelliJ IDEA Features
In addition to being the most intelligent Java IDE, IntelliJ IDEA does provide out-of-the-box support for web, enterprise and mobile frameworks, which all together bring you an unparalleled user experience.
Try IntelliJ IDEA once and you』ll never use another IDE again.
- Ultimate Edition
- Community Edition
IntelliJ IDEA is focused on raising your productivity by providing the most intelligent code assistance for all supported languages and frameworks.
- Smart Code Completion is always aware of the context so you can code faster than ever.
- On-the-fly Code Analysis ensures code quality as you type and suggests handy quick-fixes.
- Advanced Refactorings takes care of applying complicated changes to the code safely.
Developer Tools
IntelliJ IDEA offers an amazing set of integrated tools that make development more productive.
- Database Tools including a full-featured database editor and SQL support.
- UML Designer for analysing and designing classes.
- Version Control Tools with a unified interface for Git, SVN, Mercurial and others.
- Build Tools with support for Maven, Ant, Gradle and Gant.
IntelliJ IDEA offers advanced support for the most important web frameworks and standards.
- Develop easily with Spring MVC, GWT, Vaadin, Play, Grails,Web Services, JSF, Struts, Flex and other frameworks.
- Includes ultimate code assistance for HTML5, CSS3, SASS, LESS,JavaScript, CoffeeScript, Node.js, ActionScript and other languages.
- Spring
- Play
- Grails
- Flex
- Node
- HTML5
- Angular JS
- jQuery
- less
- CoffeeScript
IntelliJ IDEA offers an out-of-the-box tool set for building enterprise applications.
- With support for Spring, including Data, Web Services, Security, Batch, Roo, Integration and other frameworks.
- Code assistance and deployment tools Java EE, including EJB, CDI, JPA,Hibernate and support for the most popular application servers.
- GlassFish
- Spring
- Hibernate
- Tomcat
- JBoss
- Oracle
- WebSphere
Developing for mobile platforms becomes incredibly easy with IntelliJ IDEA.
- Support for Android, including refactorings and handy UI designer.
- Development tools for AIR Mobile with support for Android and iOS devices.
- Android
- Adobe Air
IntelliJ IDEA is an ideal IDE for agile development.
- Deploy your applications to the Clouds directly from the IDE.
- Use Task and Context Management for integration with bug trackers and context switching.
- CloudBees
- Cloud Foundry
IntelliJ IDEA is a polyglot IDE with comprehensive support for multiple languages, including:
- The most popular JVM-based languages, including Java, Scala, Groovy, Clojure and Kotlin.
- PHP, Python and Ruby.
- SQL, including PostgreSQL, MySQL, Oracle, SQL Server and many other dialects.
- Java
- Scala
- Groovy
- PHP
- Ruby
- Python
- Oracle
- PostgreSQL
- MySQL
- SQLServer
Eclipse常用快捷鍵附帶桌面壁紙哦!
最好的習慣就是不要用這個東西
ctrl+H 全局搜索,很好用
選中一個類名或者方法名或者變數名後
ctrl+shift+g,查看所有引用的地方,便於跟蹤選中類名或者方法名按f3,查看源文件
ctrl+shift+f格式化
ctrl+o快速查找方法
ctrl+shif+r快速打開指定文件給題主一個立刻見效的優化關掉validation
說幾個我常用的:1,把游標放在方法名或變數名上,按ctrl+alt+h ,會把所有使用了該方法或變數的地方找出來。2,ctrl+q 跳到最後一次編輯的位置3,crtl+t 打開介面的實現類
樓上已經有人把所有快捷鍵貼出來了。
我說幾個好用的點:1.Ctrl+Shift+F 格式化自己的代碼,會去除多餘空格換行和連接號+等左右漏掉的空格等。 最好把寬度設置到120,默認80,120不窄不寬,看代碼很舒服。2.Ctrl+O 快速查看代碼的大綱。 這樣下來即使一個類中有好多方法也不害怕了。
3.有空再補充。花一會兒研究一下「重構」里的幾個功能,你會有種相見恨晚的感覺。
推薦閱讀:
※隨著計算機發展,有2進位、8進位、16進位,為什麼沒32進位、64進位?
※教育技術專業美國大學的排名?
※在現在 有那麼多免費的好工具情況下,為什麼很多大學還在用1997年的VC6,甚至是1989年的Turbo C教學生C語言編程?課程老師也是極力推薦學生使用VC6,而不是微軟的Express版或GCC等軟體?
※大學不教C(新生群上如是說),但是已經自學了一點點,學校以後只教C++,應該繼續學C嗎?
※為什麼1/3無法用10進位完整描述,但是確可以用3進位,完全描述?