程序員與Mac

1、熟記快捷鍵:

cmd+c悦昵, cmd+v肴茄,cmd+a,這幾個大家都知道但指,不過盡量別用在代碼拷貝上寡痰。

cmd+delete:刪除當(dāng)前行抗楔。選中文件的時候直接刪除文件。

shift+方向鍵:這個在選擇文本的時候很有用拦坠,可以選擇單個字符或者整行连躏,多使用才能找到手感。

cmd+shift+左右方向鍵:這個可以快速選擇當(dāng)前行贞滨,用的也很多入热。

ctrl+a(cmd+左方向鍵):跑到當(dāng)前行的最前端,使用頻次很高晓铆。

ctrl+e(cmd+右方向鍵):跑到當(dāng)前行的最尾端勺良,使用頻次很高。

cmd+tab:切換應(yīng)用骄噪,這是大部分人用的最多的方式郑气,卻不是最高效的方式,后面會介紹其他方式腰池。

cmd+{尾组、}: 切換同一應(yīng)用的窗口,這個非常實用示弓。

cmd+w:關(guān)閉當(dāng)前窗口讳侨,后面會介紹其他方式,同樣高效奏属。

cmd+q:關(guān)閉當(dāng)前應(yīng)用跨跨。

cmd+n:新建窗口,比如打開新的Finder窗口囱皿,配合cmd+w很實用勇婴。

cmd+t:新建tab,支持tab模式的應(yīng)用一般都支持這個快捷鍵嘱腥。比如在safari耕渴,firefox,chrome下新建tab齿兔。

cmd+i: 顯示當(dāng)前文件的信息橱脸,查看文件大小,圖片寬高的時候有用分苇。

選中文件按空格預(yù)覽:預(yù)覽圖片或者pdf文件時有用添诉。配合方向鍵可以快速預(yù)覽多張圖片。

短按電源鍵:可以關(guān)閉屏幕医寿,但不能太短栏赴,多按幾次就有手感了。

2靖秩、常用工具:

本節(jié)介紹一些常用的须眷,跟開發(fā)沒有直接關(guān)系的第三方應(yīng)用及其設(shè)置乌叶。

Homebrew

包管理工具,官方稱之為The missing package manager for OS X柒爸。

安裝步驟:先打開 Terminal 應(yīng)用准浴,輸入:

1ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

有了 brew 以后,要下載工具捎稚,比如 MySQL乐横、Gradle、Maven今野、Node.js 等工具葡公,就不需要去網(wǎng)上下載了,只要一行命令就能搞定:

1brew install mysql gradle maven node

PS:安裝 brew 的時候會自動下載和安裝 Apple 的 Command Line Tools条霜。

brew 的替代品有MacPorts催什,現(xiàn)在基本沒人用它。

Homebrew Cask

brew-cask 允許你使用命令行安裝 OS X 應(yīng)用宰睡。比如你可以這樣安裝 Chrome:brew cask install google-chrome蒲凶。還有 Evernote、Skype拆内、Sublime Text旋圆、VirtualBox 等都可以用 brew-cask 安裝。

brew-cask 是社區(qū)驅(qū)動的麸恍,如果你發(fā)現(xiàn) brew-cask 上的應(yīng)用不是最新版本灵巧,或者缺少你某個應(yīng)用,你可以自己提交 pull request抹沪。

安裝:

1brew install caskroom/cask/brew-cask

應(yīng)用也可以通過 App Store 安裝刻肄,而且有些應(yīng)用只能通過 App Store 安裝,比如 Xcode 等一些 Apple 的應(yīng)用融欧。App Store 沒有對應(yīng)的命令行工具敏弃,還需要 Apple ID。倒是更新起來很方便蹬癌。

幾乎所有常用的應(yīng)用都可以通過 brew-cask 安裝权她,而且是從應(yīng)用的官網(wǎng)上下載,所以你要安裝新的應(yīng)用時逝薪,建議用 brew-cask 安裝。如果你不知道應(yīng)用在 brew-cask 中的 ID蝴罪,可以先用brew cask search命令搜索董济。

iTerm2

iTerm2 是最常用的終端應(yīng)用,是 Terminal 應(yīng)用的替代品要门。提供了諸如Split Panes等一群實用特性虏肾。它默認(rèn)的黑色背景讓我毫不猶豫的拋棄了 Terminal廓啊。

安裝:

1brew cask install iterm2

感謝 brew-cask,我們可以通過命令行自動安裝 iTerm2 了封豪。

在終端里谴轮,除了可以用?E等快捷鍵(詳見其他快捷鍵)之外,還可以使用?B吹埠、?F等快捷鍵(具體可以參考這里)第步。前提是這樣設(shè)置一下:

選擇Iterm菜單 >Preferences>Profiles,選擇你在使用的 Profile(默認(rèn)是Default)缘琅,在Keys標(biāo)簽頁中把Left option (?) key acts as和Right option (?) key acts as都設(shè)置成+ESC。

在打開新的窗口/標(biāo)簽頁的時候,默認(rèn)情況下新窗口總是 HOME 目錄励堡,還需要我每次敲命令才能進入工作目錄妓布。如果想要這個新窗口在打開的時候就自動進入工作目錄,需要如下設(shè)置:

選擇Iterm菜單 >Preferences>Profiles呻纹,選擇你在使用的 Profile(默認(rèn)是Default)堆生,在General標(biāo)簽頁中的Working Directory部分中選擇Reuse previous seesion's directory。

至此雷酪,Terminal 應(yīng)用已經(jīng)出色的完成了其歷史使命顽频。后面就交給 iTerm2 啦。

Oh My Zsh

默認(rèn)的 Bash 是黑白的太闺,沒有色彩糯景。而 Oh My Zsh 可以帶你進入彩色時代。Oh My Zsh 同時提供一套插件和工具省骂,可以簡化命令行操作蟀淮。后面我們會看到很多介紹,你會看到我愛死這家伙了钞澳。

安裝:

Shell

1sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

目前我使用的插件有:git z sublime history rbenv bundler rake

Oh My Zsh 使用了 Z shell(zsh)怠惶,一個和 Bash 相似的 Shell,而非 Bash轧粟。

在 Z shell 中策治,~/.zshrc是最重要的配置文件。Oh My Zsh 在安裝的時候會把當(dāng)前環(huán)境的$PATH寫入~/.zshrc中兰吟。這并不是我期望的行為通惫,因為使用了 brew,我們基本不再需要去定制$PATH混蔼,而 Oh My Zsh 提供的默認(rèn)$PATH值$HOME/bin:/usr/local/bin:$PATH是非常合適的一個值履腋,它把$HOME/bin加入了$PATH,可以讓我們把自己用的腳本放到$HOME/bin下。

所以建議把~/.zshrc重置:

1cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

Oh My Zsh 還有很多有價值的插件遵湖。

替代品有Oh My Fish悔政,使用了Fishshell作為基礎(chǔ)。

Git 常用別名

幾乎每個人都會使用一些方法比如 Git 別名來提高效率延旧,幾乎所有人都會把使用git st來代替git status谋国。然而這需要手動設(shè)置,每個人也都不完全一樣迁沫。

Oh My Zsh 提供了一套系統(tǒng)別名(alias)芦瘾,來達到相同的功能。比如gst作為git status的別名弯洗。而且 Git 插件是 Oh My Zsh 默認(rèn)啟用的旅急,相當(dāng)于你使用了 Oh My Zsh,你就擁有了一套高效率的別名牡整,而且還是全球通用的藐吮。是不是棒棒噠?下面是一些我常用的別名:

AliasCommand

gapagit add --patch

gc!git commit -v --amend

gclgit clone --recursive

gcleangit reset --hard && git clean -dfx

gcmgit checkout master

gcmsggit commit -m

gcogit checkout

gdgit diff

gdcagit diff --cached

glolagit log --graph --pretty = format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all

gpgit push

grbcgit rebase --continue

gstgit status

gupgit pull --rebase

gwipgit add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit -m "--wip--"

完整列表請參考:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git

Scroll Reverser

當(dāng)你在瀏覽一個很長的網(wǎng)頁時逃贝,你看完了當(dāng)前顯示的內(nèi)容谣辞,想要看后續(xù)的內(nèi)容,你可以在 Trackpad 上雙指上滑沐扳,或者鼠標(biāo)滾輪向上滾動泥从。這是被稱作“自然”的滾動方向。

然而在 Windows 里鼠標(biāo)滾動的行為是相反的:鼠標(biāo)滾輪向下滾動才會讓瀏覽器顯示后續(xù)的內(nèi)容沪摄,向上滾動會達到頁面的頂部躯嫉。你可以在 OS X 的系統(tǒng)偏好設(shè)置里修改(選擇System Preferences>Trackpad,在Scroll & Zoom標(biāo)簽頁中不選中Scroll direction: natural)杨拐,但是這樣會同時改變鼠標(biāo)滾輪的方向和 Trackpad 的方向祈餐。

要想只改變鼠標(biāo)滾輪的方向,而保持 Trackpad 依舊是“自然”的哄陶,我們需要 Scroll Reverser:

1brew cask install scroll-reverser

PS:這貨會讓三指點擊失效

ShiftIt

原生 OS X 下只能手動調(diào)整窗口大小帆阳,所以我們需要窗口管理工具。我用過很多窗口管理工具屋吨,可惜大部分工具都存在快捷鍵沖突的問題(對我來說主要是 IntelliJ IDEA)蜒谤。ShiftIt 是少見的沒有沖突的窗口管理工具:

1brew cask install shiftit

PS:ShiftIt的舊版本需要安裝 X11,最新版本已經(jīng)修正了這個問題至扰。

替代者有 SizeUp鳍徽,主要快捷鍵和 ShiftIt 相同。

當(dāng)然如果喜歡 hacking渊胸,Slate是個不錯的 hackable 的窗口管理工具旬盯。配置可以參照http://thume.ca/howto/2012/11/19/using-slate/

Sublime Text 2

安裝:

1brew cask install sublime-text

在命令行中指定使用 Sublime Text 打開某文件,是一個非常常用的功能翎猛,一般我們會按照OS X Command Line中所說執(zhí)行l(wèi)n -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl來增加subl鏈接胖翰。但是如果你用 brew-cask 安裝的話,恭喜你切厘,你不需要運行這個命令萨咳,因為 brew-cask 自動幫你做了這件事情。而且你卸載 Sublime Text 的時候 brew-cask 會自動刪掉這個鏈接疫稿。

同時 Oh My Zsh 也提供了 Sublime Text 插件培他,叫做sublime。參考:https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/sublime遗座,這個插件和通過 brew-cask 安裝的 Sublime Text 完美兼容舀凛。

替代品有 TextMate,Sublime Text 3 等途蒋。

MacDown

MacDown 是 Markdown 編輯器猛遍。由于 Mou 一直不支持代碼高亮,我就轉(zhuǎn)向了 MacDown号坡。完美支持GFM懊烤。

我特別喜歡Markdown,我用 Makdown 來寫文章(包括本文)宽堆,寫幻燈片(reveal.js)腌紧。Markdown 可以讓我專注于內(nèi)容本身,而無需花精力在排版和樣式上畜隶。

安裝:

1brew cask install macdown

z

在打開終端后壁肋,你是怎么進入項目的工作目錄?是cd xxx籽慢,?R還是用別名浸遗?

z工具可以幫你快速進入目錄。比如在我的 Mac 上運行z cask就會進入/usr/local/Library/Taps/caskroom/homebrew-cask/Casks目錄嗡综。

這貨的安裝非常方便乙帮,甚至都不需要下載任何東西,因為它已經(jīng)整合在了 Oh My Zsh 中极景。編輯~/.zshrc文件察净,在plugins=(git)這行中加上z變成plugins=(git z),然后運行source ~/.zshrc重新加載配置文件盼樟,就可以使用 z 了氢卡。

替代品有 autojump。autojump 需要使用 brew 安裝晨缴。

Vimium

Vimium 是一個 Google Chrome 擴展译秦,讓你可以純鍵盤操作 Chrome,把你的 Chrome 變成“黑客的瀏覽器”。

安裝方法請參考官方網(wǎng)站筑悴。

其他瀏覽器也有類似的工具们拙,比如 FireFox 的KeySnail

LastPass

LastPass 是管理密碼的工具阁吝,支持二次驗證砚婆,提供所有瀏覽器插件以及 Mac 桌面版本。

最重要的是突勇,它提供命令行的版本装盯,可以直接通過 brew 安裝

1brew install lastpass-cli --with-pinentry

之后,只需要登陸:

1lpass login you@email.com

就可以拷貝密碼或者集成到其他命令中了:

1lpass show --password gmail.com -c

SourceTree

SourceTree 是 Atlassian 公司出品的一款優(yōu)秀的 Git 圖形化客戶端甲馋。如果你發(fā)現(xiàn)命令行無法滿足你的要求埂奈,可以試試 SourceTree。

安裝:

1brew cask install sourcetree

用 brew-cask 安裝會自動增加命令行工具stree到$PATH里定躏。在命令行中輸入stree可以快速用 SourceTree 打開當(dāng)前 Git 倉庫账磺。詳細用法請參見stree --help。

3. 開發(fā)工具

Java

現(xiàn)在 OS X 都不會自帶 JDK 了共屈,所以進行 Java 開發(fā)的話绑谣,需要下載 JDK。在 brew-cask 之前拗引,我們需要從https://developer.apple.com/downloads/或者 Oracle 網(wǎng)站上下載借宵。還有更麻煩的--卸載 JDK 和升級 JDK。

JDK 安裝文件是 pkg 格式矾削,卸載和.app不一樣壤玫,且沒有自動卸載方式。

而 brew-cask 提供了自動安裝和卸載功能哼凯,能夠自動從官網(wǎng)上下載并安裝 JDK 8欲间。

Shell

1brew cask install java

如果你需要安裝 JDK 7 或者 JDK 6,可以使用homebrew-cask-versions:

Shell

brew tap caskroom/versions

brew cask install java6

在 OS X 上断部,你可以同時安裝多個版本的 JDK猎贴。你可以通過命令/usr/libexec/java_home -V來查看安裝了哪幾個 JDK。

那問題來了蝴光,當(dāng)你運行java或者 Java 程序時使用的是哪個 JDK 呢她渴?在 OS X 下,java也就是/usr/bin/java在默認(rèn)情況下指向的是已經(jīng)安裝的最新版本蔑祟。但是你可以設(shè)置環(huán)境變量JAVA_HOME來更改其指向:

Shell

$ java -version

java version "1.8.0_60"

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

$ JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home java -version

java version "1.6.0_65"

Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)

Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)

其中JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home可以用JAVA_HOME=/usr/libexec/java_home -v 1.6這種更加通用的方式代替趁耗。

jEnv

也可以使用 jEnv 來管理不同版本的 JDK,這個工具跟rbenv類似疆虚,通過當(dāng)前目錄下的.java-version來決定使用哪個 JDK苛败。jEnv 也可以用 brew 安裝满葛。不過要使用 jEnv 要有幾個問題:

需要手動把eval "$(jenv init -)"加入 profile,沒有 Oh My Zsh 插件罢屈。這點是我非常反感的嘀韧。可以把eval "$(jenv init -)"加入~/.zlogin儡遮,這樣可以避免修改~/.zshrc乳蛾。

需要手動添加 JDK暗赶,不會自動采集系統(tǒng) JDK鄙币。跟 Ruby 不同,OS X 已經(jīng)提供/usr/libexec/java_home工具來管理安裝的 JDK蹂随。

需要jenv rehash十嘿。這個是跟 rbenv 學(xué)的。

所以我建議不要使用 jEnv岳锁。

Java[OCD]

作為一個強迫癥患者绩衷,每當(dāng)我看到 Java 的錯誤寫法就想糾正過來。

當(dāng)指編程語言時激率,Java 的正確寫法是首字母大寫咳燕,其余小寫。其他寫法比如JAVA乒躺、java都是不對的招盲。

在其他一些地方會使用小寫的java:

java命令

原文件Main.java

包名java.lang

只有在全大寫的標(biāo)題里使用JAVA或者環(huán)境變量JAVA_HOME。

IntelliJ IDEA

Java 開發(fā)必備工具 IntelliJ IDEA嘉冒〔芑酰可以安裝 Ultimate Edition:

1brew cask install intellij-idea

也可以安裝開源免費的 Community Edition:

1brew cask install intellij-idea-ce

IntelliJ IDEA 有幾套內(nèi)建的快捷鍵方案(Keymap)。其中適用于 OS X 的有Mac OS X和Mac OS X 10.5+兩種讳推。區(qū)別是:

Mac OS X方案和其他平臺上的快捷鍵類似顶籽,

而Mac OS X 10.5+更加符合 OS X 常用的快捷鍵。

一個團隊使用不同的快捷鍵會嚴(yán)重影響效率银觅±癖ィ可以用View | Quick Switch Scheme(? Back Quote)快速切換 Keymap。

如果可以選擇的話究驴,我建議使用Mac OS X方案镊绪。因為我經(jīng)常遇到使用 Windows 的客戶,而 Windows 平臺上的快捷鍵和Mac OS X方案類似纳胧。

rbenv

人人都需要一個 Ruby 版本管理工具镰吆。rbenv 就是這樣一個輕量級工具,它可以通過 brew 安裝跑慕。

安裝:

1brew install rbenv ruby-build

然后在~/.zshrc中加上rbenv插件万皿。否則你需要手動添加eval "$(rbenv init -)"到~/zshrc或者~/.zprofile文件里摧找。

有時候項目會依賴一些奇怪的版本號,比如ruby-2.1.0牢硅,這個時候你需要rbenv-aliases幫忙:

1brew install rbenv-aliases

替代品有 RVM蹬耘、chruby。因為 RVM 不能通過 brew 安裝减余,并且安裝的時候會沒有節(jié)操的修改一堆文件综苔,所以被我早早的棄用了。chruby 也是一個輕量級工具位岔,而且可以完美的和 Oh My Zsh 集成在一起如筛,我看到有些生產(chǎn)環(huán)境在用它。

Ruby 常用別名

幾乎所有 Ruby 開發(fā)人員都會把bi作為bundle install的別名抒抬。Oh My Zsh 提供builder插件杨刨,這個插件提供了一套別名,比如bi擦剑、be妖胀。同時還能讓你在運行一些常用 gem 的時候直接輸入rspec,不需要be rspec這樣了惠勒。具體包括哪些命令請參考這里赚抡。

Z shell 對于[和]符號有特殊的處理,所以在運行rake task[parameter]的時候會報錯纠屋,你需要改成noglob rake task[parameter]涂臣。然而 Oh My Zsh 已經(jīng)看穿這一切,自帶的 rake 插件已經(jīng)解決了這個問題:brake task[parameter]巾遭。

添加插件的時候注意把rake放到bundler后面肉康,例如這樣:

1plugins=(git z sublime history rbenv bundler rake)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市灼舍,隨后出現(xiàn)的幾起案子吼和,更是在濱河造成了極大的恐慌,老刑警劉巖骑素,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炫乓,死亡現(xiàn)場離奇詭異,居然都是意外死亡献丑,警方通過查閱死者的電腦和手機末捣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來创橄,“玉大人箩做,你說我怎么就攤上這事⊥孜罚” “怎么了邦邦?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵安吁,是天一觀的道長。 經(jīng)常有香客問我燃辖,道長鬼店,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任黔龟,我火速辦了婚禮妇智,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氏身。我一直安慰自己巍棱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布观谦。 她就那樣靜靜地躺著拉盾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪豁状。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天倒得,我揣著相機與錄音泻红,去河邊找鬼。 笑死霞掺,一個胖子當(dāng)著我的面吹牛谊路,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菩彬,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼缠劝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骗灶?” 一聲冷哼從身側(cè)響起惨恭,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耙旦,沒想到半個月后脱羡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡免都,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年锉罐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绕娘。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡脓规,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出险领,到底是詐尸還是另有隱情侨舆,我是刑警寧澤升酣,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站态罪,受9級特大地震影響噩茄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜复颈,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一绩聘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸燎孟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涝缝。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間获黔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工在验, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玷氏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓腋舌,卻偏偏與公主長得像盏触,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子块饺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容