Date
May. 16th, 2025
 
2025年五月六十

Post: 系统基本配置概要

系统基本配置概要

Published 12:11 Nov 23, 2016.

Created by @ezra. Categorized in #Technology, and tagged as #UNIX/Linux.

Source format: Markdown

Table of Content
  1. 重装系统
  2. 安装工具
    1. rvm
    2. gem
    3. CocoaPods
    4. Jekyll
    5. macgap
    6. pip
    7. port
    8. brew
    9. Carthage
    10. npm
    11. Grunt
    12. PHP
    13. Nginx
    14. MySQL
  3. 设置
    1. 隐藏文件
    2. vim
    3. bash
    4. Xcode
  4. Apps
  5. 其它

因为时不时会给自己或者被人的电脑💻重装系统, 装系统很简单, 但之后要配置的内容还是蛮多的, 这里列举一下吧。

重装系统

首先要从重装系统说起, 由于直接运行 .app 安装会保留原来的数据, 而很多时候这正是我们不希望看到的, 所以我们要用到 Terminal 来解决,详细内容可以参考我 之前的博客

sudo createinstallmedia路径 --volume U盘路径 --applicationpath 安装器App路径

安装工具

rvm

接下来, 系统安装好之后先来安装 rvm 吧:

\curl -sSL https://get.rvm.io | bash -s stable

安装好之后, 再来安装 Ruby, 版本根据需要来选, 比如 2.2.5:

rvm install 2.2.5

gem

由于 gem 已经自带, 所以我们直接安装一些常用工具即可, 首先如果你在天朝大陆, 没有任何高科技的情况下, 记得修改源到淘宝镜像:

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

然后确认一下:

gem sources -l

CocoaPods

gem 没问题的话, 开始安装 CocoaPods:

gem install cocoapods

Jekyll

接下来还要安装 Jekyll:

gem install jekyll

需要的话还可以安装其他插件, 比如:

$ gem install jekyll-paginate
$ gem install jekyll-toc

macgap

顺手安装个小工具, MacGap, 一个 WebApp 生成器。

gem install macgap

使用起来也很简单, 随意在什么路径下创建一个 app, 例如我在 ~ 目录新建一个叫 MyBlog 的 app:

$ cd ~
$ macgap new MyBlog

这时, MacGap 会在 ~ 下创建 MyBlog 文件夹, 包含 index.html 文件。

修改 MyBlog/index.html 甚至添加其它资源到 Blog/ 中, 然后开始构建:

macgap build MyBlog

构建完成后会生成 MyBlog.app 文件。

pip

pip 也免不了, 可以参考我 之前的博客:

sudo easy_install pip

有了 pip 也可以装一些实用的东西, 比如 Pygments:

sudo pip install Pygments

port

Macport 应该不用介绍了, 安装工具请移步 https://www.macports.org/install.php

当然, 你也可以在这个的链接中找到源文件, 通过源文件安装也是安装选项之一, 相关内容可以参考我 之前的博客

brew

Homebrew 也是很常用的工具, 必装之一, 可以参考我 之前的博客:

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

brew 能做不少事情, 比如:

brew install coreutils

Carthage

有个 brew, 来安装 Carthage 吧:

brew install carthage

当然, 你的系统也可能已经安装了 carthage, 这时一般会提示你 unlink carthage, 你可以通过 carthage version 查看其版本。

npm

node和npm安装必不可少,这里我们用 brew 来安装它们。

一般来说, 首先应该确保 brew 是安全可靠的:

brew doctor

如果出现:

Warning: Some directories in /usr/local/share/man aren't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to add locale information to one of these directories, then the install will fail during the link step.

You should probably sudo chown -R $(whoami) them: /usr/local/share/man/man5 /usr/local/share/man/man7

那么, 将 brew 的位置添加到 $PATH 环境变量中:

export PATH="/usr/local/bin:$PATH"

如果出现:

Warning: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built. Run brew link on these: node

则需清理 brew:

brew cleanup

并删除 node 文件:

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

或:

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp /opt/local/bin/node opt/local/include/node /opt/local/lib/node_modules

一切正常的话开始安装:

$ brew link node
$ brew uninstall node
$ brew install node

当然你也可能只需要 brew install node 这一条指令。

Grunt

npm install -g grunt-cli

PHP

php 已经在系统中内置, 需要的话可以安装新版, 以及 php-fpm:

brew install homebrew/php/php70 homebrew/php/php70-mcrypt homebrew/php/php70-gmagick homebrew/php/php70-opcache homebrew/php/php70-xdebug

接下来:

vi ~/.bash_profile

i 进入编辑模式, 依据情况, 添加或修改:

export PATH="/usr/local/sbin:$PATH"

然后:

source ~/.bash_profile

现在你可以输入 php -vphp-fpm -v 都应该显示查看版本号。

接着, 启动 php-fpm 试试看:

sudo php-fpm

结束掉:

sudo pkill php-fpm

就目前的情况下, 在终端中启动 php-fpm 后, 未结束前不要关闭窗口, 若输入其他命令应该新建窗口, 非正常关闭重新启动将显示端口被占用, 此时需要修改默认的端口 9000 为其他端口。

Nginx

先安装:

brew install nginx

或:

brew install --with-http2 nginx

安装结束后要进行一些设置:

vi /usr/local/etc/nginx/nginx.conf

根据情况修改或添加:

server {
    listen       8080; # 默认端口为8080
    server_name  localhost; # 网站地址
    # charset koi8-r;
    # access_log  logs/host.access.log  main;
    # 如果想使用80端口,需要给予权限,添加下面两行并参考下一个步骤,不需要则可以跳过
    ssl_certificate ssl/nginx.crt;
    ssl_certificate_key ssl/nginx.key;
    location / {
        root   html; # html为网站根目录,可以自己修改
        index  index.html index.htm; # 添加index.php
    }

生成密钥给予权限以使用 80 端口:

sudo mkdir /usr/local/etc/nginx/ssl/
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/etc/nginx/ssl/nginx.key -out /usr/local/etc/nginx/ssl/nginx.crt

设置 Nginx 支持 php:

vi /usr/local/etc/nginx/nginx.conf

找到下面内容并打开其中的注释部分, 并修改:

location ~ \.php$ {
    root           html; #此处的根目录应与上面的设置的一致
    fastcgi_pass   127.0.0.1:9000; #此处可以设置php-fpm默认端口
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; #此处将/scripts$fastcgi_script_name修改为根目录$fastcgi_script_name
    include        fastcgi_params; #将此行代码与上一行对调位置
}

启动 Nginx:

sudo nginx

结束/重载 (配置文件) Nginx:

sudo nginx -s stop
sudo nginx -s reload

MySQL

brew install mysql

安装完成后为 MySQL 设置密码, 首先无密码登录, 用户名为 root:

mysql -u root

在 MySQL 中操作:

$ update mysql.user set authentication_string="new password" where User='root'$ flush privileges;
$ quit

设置

隐藏文件

首先是显示 Finder 隐藏文件:

defaults write com.apple.finder AppleShowAllFiles -bool true

反之, 想要关闭的话执行:

defaults write com.apple.finder AppleShowAllFiles -bool false

vim

vi/vim 是十分常用的命令行编辑器, 一般要做的有几件事, 显示行号、语法高亮:

vi ~/.vimrc

i 进入编辑模式, 输入:

filetype on
syntax on
syntax enable
colorscheme railscasts
set nocompatible
set number
set nu
set ai
set flash
set showmatch
set showmode
set showcmd
set warn
set wrap
set history=1000
set background=dark
set autoindent
set smartindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set incsearch

其中 railscasts 是自定义的高亮配置, 并不是默认提供的, 默认配置有:

Ezra $ ls /usr/share/vim/vim74/colors/
README.txt     evening.vim    ron.vim
blue.vim       industry.vim   shine.vim
darkblue.vim   koehler.vim    slate.vim
default.vim    morning.vim    torte.vim
delek.vim      murphy.vim     zellner.vim
desert.vim     pablo.vim
elflord.vim    peachpuff.vim

如果你有自己的色彩配置文件, 比如我刚才使用的 railscasts.vim, 将其复制到用户目录下的 vim 配置中:

cp railscasts.vim ~/.vim/colors/railscasts.vim

然后和我一样在 .vimrc 中使用它即可, 下面是 railscasts.vim 文件的内容。

"
" Name:    railscasts.vim
" URL:     https://meniny.cn/
" License: MIT <https://opensource.org/licenses/MIT>
"

set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
let g:colors_name = "railscasts"

hi Normal                    guifg=#e4e4e4 guibg=#121212 ctermfg=254 ctermbg=233
hi Search                    guifg=#000000 guibg=#5f5f87 ctermfg=0 ctermbg=60 cterm=NONE
hi Visual                    guibg=#5f5f87 ctermbg=60
hi LineNr                    guifg=#666666 ctermfg=242
hi Cursor                    guifg=#000000 guibg=#FFFFFF ctermfg=0 ctermbg=15
hi CursorLine                guibg=#1c1c1c gui=NONE ctermbg=234 cterm=NONE
hi CursorLineNr              guifg=#a9a8a8 gui=NONE ctermfg=248 cterm=NONE
hi ColorColumn               guibg=#1c1c1c ctermbg=234
hi! link CursorColumn ColorColumn
hi VertSplit                 guifg=#444444 guibg=#121212 gui=NONE ctermfg=238 ctermbg=233 cterm=NONE
hi SignColumn                guifg=#FFFFFF guibg=NONE ctermfg=15 ctermbg=NONE

" StatusLine
" Bold
hi User1                     guifg=#eeeeee guibg=#606060 gui=bold ctermfg=255 ctermbg=241 cterm=bold
" Yellow
hi User2                     guifg=#FFAF00 guibg=#606060 gui=bold ctermfg=214 ctermbg=241 cterm=bold
" Green
hi User3                     guifg=#5fff00 guibg=#606060 gui=bold ctermfg=82 ctermbg=241 cterm=bold
" Red
hi User4                     guifg=#870000 guibg=#606060 gui=bold ctermfg=88 ctermbg=241 cterm=bold
hi User5                     guifg=#e4e4e4 guibg=#606060 gui=bold ctermfg=254 ctermbg=241 cterm=bold
hi User6                     guifg=#e4e4e4 guibg=#606060 gui=bold ctermfg=254 ctermbg=241 cterm=bold
hi User7                     guifg=#e4e4e4 guibg=#606060 gui=bold ctermfg=254 ctermbg=241 cterm=bold
hi User8                     guifg=#e4e4e4 guibg=#606060 gui=bold ctermfg=254 ctermbg=241 cterm=bold
hi User9                     guifg=#e4e4e4 guibg=#606060 gui=bold ctermfg=254 ctermbg=241 cterm=bold
hi StatusLine                guifg=#e4e4e4 guibg=#606060 gui=NONE ctermfg=254 ctermbg=241 cterm=NONE
hi StatusLineNC              guifg=#585858 guibg=#303030 gui=NONE ctermfg=240 ctermbg=236 cterm=NONE

" Folds
" -----
" line used for closed folds
hi Folded                    guifg=#ffffff guibg=#444444 gui=NONE ctermfg=15 ctermbg=238 cterm=NONE
hi! link FoldColumn SignColumn

" Invisible Characters
" ------------------
hi NonText                   guifg=#767676 gui=NONE cterm=NONE ctermfg=243
hi SpecialKey                guifg=#767676 gui=NONE cterm=NONE ctermfg=243

" Misc
" ----
" directory names and other special names in listings
hi Directory                 guifg=#87af5f gui=NONE ctermfg=107 cterm=NONE

" Popup Menu
" ----------
" normal item in popup
hi Pmenu                     guifg=#ffffff guibg=#444444 gui=NONE ctermfg=15 ctermbg=238 cterm=NONE
" selected item in popup
hi PmenuSel                  guifg=#000000 guibg=#87af5f gui=NONE ctermfg=0 ctermbg=107 cterm=NONE
" scrollbar in popup
hi PMenuSbar                 guibg=#5A647E gui=NONE ctermfg=15 ctermbg=60 cterm=NONE
" thumb of the scrollbar in the popup
hi PMenuThumb                guifg=#ffffff guibg=#a8a8a8 gui=NONE ctermfg=15 ctermbg=248 cterm=NONE

" Code constructs
" ---------------
hi Comment                   guifg=#af875f ctermfg=137
hi Todo                      guifg=#df5f5f guibg=NONE gui=bold ctermfg=167 ctermbg=NONE cterm=bold
" hi Todo                      guifg=#000000 guibg=ffff00 gui=bold ctermfg=16 ctermbg=11 cterm=bold
hi Constant                  guifg=#6D9CBE ctermfg=73
hi Error                     guifg=#FFFFFF guibg=#990000 ctermfg=221 ctermbg=88
hi WarningMsg                guifg=#800000 guibg=NONE ctermfg=1 ctermbg=NONE
hi Identifier                guifg=#af5f5f gui=NONE ctermfg=221 cterm=NONE
hi Keyword                   guifg=#af5f00 gui=NONE ctermfg=130 cterm=NONE
hi Number                    guifg=#87af5f ctermfg=107
hi Statement                 guifg=#af5f00 gui=NONE ctermfg=130 cterm=NONE
hi String                    guifg=#87af5f ctermfg=107
hi Title                     guifg=#FFFFFF ctermfg=15
hi Type                      guifg=#df5f5f gui=NONE ctermfg=167 cterm=NONE
hi PreProc                   guifg=#ff8700 ctermfg=208
hi Special                   guifg=#005f00 ctermfg=22

" Diffs
" -----
hi DiffAdd                   guifg=#e4e4e4 guibg=#519F50 ctermfg=254 ctermbg=22
hi DiffDelete                guifg=#000000 guibg=#660000 gui=bold ctermfg=16 ctermbg=52 cterm=bold
hi DiffChange                guifg=#FFFFFF guibg=#870087 ctermfg=15 ctermbg=90
hi DiffText                  guifg=#FFFFFF guibg=#FF0000 gui=bold ctermfg=15 ctermbg=9 cterm=bold

hi diffAdded                 guifg=#008700 ctermfg=28
hi diffRemoved               guifg=#800000 ctermfg=1
hi diffNewFile               guifg=#FFFFFF guibg=NONE gui=bold ctermfg=15 ctermbg=NONE cterm=bold
hi diffFile                  guifg=#FFFFFF guibg=NONE gui=bold ctermfg=15 ctermbg=NONE cterm=bold


" Ruby
" ----
hi rubyTodo                  guifg=#df5f5f guibg=NONE gui=bold ctermfg=167 ctermbg=NONE cterm=bold
hi rubyClass                 guifg=#FFFFFF ctermfg=15
hi rubyConstant              guifg=#df5f5f ctermfg=167
hi rubyInterpolation         guifg=#FFFFFF ctermfg=15
hi rubyBlockParameter        guifg=#dfdfff ctermfg=189
hi rubyPseudoVariable        guifg=#ffdf5f ctermfg=221
hi rubyStringDelimiter       guifg=#87af5f ctermfg=107
hi rubyInstanceVariable      guifg=#dfdfff ctermfg=189
hi rubyPredefinedConstant    guifg=#df5f5f ctermfg=167
hi rubyLocalVariableOrMethod guifg=#dfdfff ctermfg=189

" Python
" ------
hi pythonExceptions          guifg=#ffaf87 ctermfg=216
hi pythonDoctest             guifg=#8787ff ctermfg=105
hi pythonDoctestValue        guifg=#87d7af ctermfg=115

" Mail
" ----
hi mailEmail                 guifg=#87af5f ctermfg=107 gui=italic cterm=underline
hi mailHeaderKey             guifg=#ffdf5f ctermfg=221
hi! link mailSubject mailHeaderKey

" Spell
" ----
hi SpellBad                  guifg=#D70000 guibg=NONE gui=undercurl ctermfg=160 ctermbg=NONE cterm=underline
hi SpellRare                 guifg=#df5f87 guibg=NONE gui=underline ctermfg=168 ctermbg=NONE cterm=underline
hi SpellCap                  guifg=#dfdfff guibg=NONE gui=underline ctermfg=189 ctermbg=NONE cterm=underline
hi SpellLocal                guifg=#00FFFF guibg=NONE gui=undercurl ctermfg=51 ctermbg=NONE cterm=underline
hi MatchParen                guifg=#FFFFFF guibg=#005f5f ctermfg=15 ctermbg=23

" XML
" ---
hi xmlTag                    guifg=#dfaf5f ctermfg=179
hi xmlTagName                guifg=#dfaf5f ctermfg=179
hi xmlEndTag                 guifg=#dfaf5f ctermfg=179

" HTML
" ----
hi! link htmlTag              xmlTag
hi! link htmlTagName          xmlTagName
hi! link htmlEndTag           xmlEndTag

hi checkbox guifg=#3a3a3a guibg=NONE gui=NONE ctermfg=237 ctermbg=NONE cterm=NONE
hi checkboxDone guifg=#5fff00 guibg=NONE gui=BOLD ctermfg=82 ctermbg=NONE cterm=BOLD
hi checkboxNotDone guifg=#005fdf guibg=NONE gui=BOLD ctermfg=26 ctermbg=NONE cterm=BOLD

bash

此外, 由于使用 bash, 也需要做一些配置:

vi ~/.bash_profile

i 进入编辑模式, 并依据实际情况添加:

export PS1="\[\e[1;32m\]Ezra $ \[\e[m\]"
#export PS1='\n😋☞ $ '
#export PS1='\e[1;32m\]\h\[\e[m\]\[\e[0m\]:\[\e[m\]\[\e[1;35:m\]\W\[\e[m\] \[\e[1;33m\]\u\[\e[m\]\[\e[0m\]$ \[\e[m\]'

# default path
#cd ~/Desktop

alias tosldc='cd ~/Desktop/SLDC/xin_TK_ios/;pwd'

alias linecount='python3 ~/Desktop/Python/LineCount.py' # run ~/Desktop/Python/LineCount.py with params

alias newb='echo -e "---\nlayout: post\ntoc: true\ntitle: \"\"\ncategory: \"\"\ncopy: true\ntags: []\nimg: \"/assets/images/posts/content/postimg/.jpg\"\n---\n" >' # create new blog

alias jb='jekyll b -s ~/MXDevelop/Meniny.github.io/ --config ~/MXDevelop/Meniny.github.io/_config_dev.yml -d ~/MXDevelop/GITHUB_SITE_BUILD/meniny.github.io/ --verbose' # build my blog

alias gitaddempty='find . -type d -empty -exec touch {}/.gitignore \;' # add .gitignore to empty directorie
alias rm='rm -i' # rm with alert
alias ls='ls -FG' # ls with color
alias show='pygmentize -g' # Pygments colorful
alias sbash='source ~/.bash_profile;pwd' # source this file
alias vbash='vi ~/.bash_profile' # edit this file
alias cbash='show ~/.bash_profile' # show this file
alias showall='defaults write com.apple.finder AppleShowAllFiles -bool true; echo "please killall Finder"' # show hidden files, needs 'killall Finder'
alias shownor='defaults write com.apple.finder AppleShowAllFiles -bool false; echo "please killall Finder"' # do not show hidden files, needs 'killall Finder'
alias adoc='asciidoctor' # short of asciidoctor

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

#export ANDROID_HOME=/usr/local/opt/android-sdk
export ANDROID_HOME="/Users/Meniny/Android/ADT/sdk"

# cd with pwd / ls
cdpwd(){
    cd $1 && pwd;
};
cdls(){
    cd $1 && ls -FG && pwd;
};

alias up='cd ..;pwd'

其中关于 PS1 更详细的设置可以参考我 之前的博客

Xcode

我目前的主要工作是 iOS 研发, 所以对苹果的 IDE: Xcode 也需要做一些设置。

首先下载 Xcode 及模拟器、API 文档这些事情我就不废话了, 直接来设置新的语法高亮主题:

首先进入 ~/Library/Developer/Xcode/UserData/FontAndColorThemes/ 目录, 如果不存在则自己新建即可。

接下来, 复制新的 .dvtcolortheme 文件到这里, 重启 Xcode 即可在设置中使用了。

下面, 附上 Railscasts.dvtcolortheme 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>DVTConsoleDebuggerInputTextColor</key>
    <string>0.863 0.862 0.8 1</string>
    <key>DVTConsoleDebuggerInputTextFont</key>
    <string>Menlo-Regular - 11.0</string>
    <key>DVTConsoleDebuggerOutputTextColor</key>
    <string>0.863 0.862 0.8 1</string>
    <key>DVTConsoleDebuggerOutputTextFont</key>
    <string>Menlo-Regular - 11.0</string>
    <key>DVTConsoleDebuggerPromptTextColor</key>
    <string>0.808754 0.56476 0.57089 1</string>
    <key>DVTConsoleDebuggerPromptTextFont</key>
    <string>Menlo-Regular - 11.0</string>
    <key>DVTConsoleExectuableInputTextColor</key>
    <string>0.584314 0.72549 0.27451 1</string>
    <key>DVTConsoleExectuableInputTextFont</key>
    <string>Menlo-Regular - 11.0</string>
    <key>DVTConsoleExectuableOutputTextColor</key>
    <string>0.584314 0.72549 0.27451 1</string>
    <key>DVTConsoleExectuableOutputTextFont</key>
    <string>Menlo-Regular - 11.0</string>
    <key>DVTConsoleTextBackgroundColor</key>
    <string>0.117647 0.117647 0.117647 1</string>
    <key>DVTConsoleTextInsertionPointColor</key>
    <string>0.862745 0.862745 0.8 1</string>
    <key>DVTConsoleTextSelectionColor</key>
    <string>0.352941 0.392157 0.494118 1</string>
    <key>DVTDebuggerInstructionPointerColor</key>
    <string>0.333 0.333 0.333 1</string>
    <key>DVTMarkupTextBackgroundColor</key>
    <string>0.188235 0.188235 0.188235 1</string>
    <key>DVTMarkupTextBorderColor</key>
    <string>0.253176 0.253176 0.253176 1</string>
    <key>DVTMarkupTextCodeFont</key>
    <string>Menlo-Regular - 11.0</string>
    <key>DVTMarkupTextEmphasisColor</key>
    <string>0.901961 0.882353 0.862745 1</string>
    <key>DVTMarkupTextEmphasisFont</key>
    <string>.SFNSText-Italic - 11.0</string>
    <key>DVTMarkupTextInlineCodeColor</key>
    <string>0.901961 0.882353 0.862745 0.7</string>
    <key>DVTMarkupTextLinkColor</key>
    <string>0.967391 0.959151 0.576175 1</string>
    <key>DVTMarkupTextLinkFont</key>
    <string>.SFNSText-Regular - 11.0</string>
    <key>DVTMarkupTextNormalColor</key>
    <string>0.901961 0.882353 0.862745 1</string>
    <key>DVTMarkupTextNormalFont</key>
    <string>.SFNSText-Regular - 11.0</string>
    <key>DVTMarkupTextOtherHeadingColor</key>
    <string>0.901961 0.882353 0.862745 0.5</string>
    <key>DVTMarkupTextOtherHeadingFont</key>
    <string>.SFNSText-Regular - 15.4</string>
    <key>DVTMarkupTextPrimaryHeadingColor</key>
    <string>0.901961 0.882353 0.862745 1</string>
    <key>DVTMarkupTextPrimaryHeadingFont</key>
    <string>.SFNSDisplay-Regular - 26.4</string>
    <key>DVTMarkupTextSecondaryHeadingColor</key>
    <string>0.901961 0.882353 0.862745 1</string>
    <key>DVTMarkupTextSecondaryHeadingFont</key>
    <string>.SFNSText-Regular - 19.8</string>
    <key>DVTMarkupTextStrongColor</key>
    <string>0.901961 0.882353 0.862745 1</string>
    <key>DVTMarkupTextStrongFont</key>
    <string>.SFNSText-Bold - 11.0</string>
    <key>DVTSourceTextBackground</key>
    <string>0.117647 0.117647 0.117647 1</string>
    <key>DVTSourceTextBlockDimBackgroundColor</key>
    <string>0.3 0.3 0.3 1</string>
    <key>DVTSourceTextInsertionPointColor</key>
    <string>1 1 1 1</string>
    <key>DVTSourceTextInvisiblesColor</key>
    <string>0.5 0.5 0.5 1</string>
    <key>DVTSourceTextSelectionColor</key>
    <string>0.352941 0.392157 0.494118 1</string>
    <key>DVTSourceTextSyntaxColors</key>
    <dict>
        <key>xcode.syntax.attribute</key>
        <string>0.339673 0.536005 0.699935 1</string>
        <key>xcode.syntax.character</key>
        <string>0.585441 0.727116 0.275033 1</string>
        <key>xcode.syntax.comment</key>
        <string>0.559943 0.439967 0.262012 1</string>
        <key>xcode.syntax.comment.doc</key>
        <string>0.559943 0.439967 0.262012 1</string>
        <key>xcode.syntax.comment.doc.keyword</key>
        <string>0.559943 0.439967 0.262012 1</string>
        <key>xcode.syntax.identifier.class</key>
        <string>0.338776 0.621747 0.405362 1</string>
        <key>xcode.syntax.identifier.class.system</key>
        <string>0.856885 0.286616 0.223017 1</string>
        <key>xcode.syntax.identifier.constant</key>
        <string>0.338776 0.621747 0.405362 1</string>
        <key>xcode.syntax.identifier.constant.system</key>
        <string>0.856885 0.286616 0.223017 1</string>
        <key>xcode.syntax.identifier.function</key>
        <string>0.339673 0.536005 0.699935 1</string>
        <key>xcode.syntax.identifier.function.system</key>
        <string>0.339673 0.536005 0.699935 1</string>
        <key>xcode.syntax.identifier.macro</key>
        <string>0.967391 0.959151 0.576175 1</string>
        <key>xcode.syntax.identifier.macro.system</key>
        <string>0.967391 0.959151 0.576175 1</string>
        <key>xcode.syntax.identifier.type</key>
        <string>0.338776 0.621747 0.405362 1</string>
        <key>xcode.syntax.identifier.type.system</key>
        <string>0.856885 0.286616 0.223017 1</string>
        <key>xcode.syntax.identifier.variable</key>
        <string>0.699278 0.693974 0.922983 1</string>
        <key>xcode.syntax.identifier.variable.system</key>
        <string>0.699278 0.693974 0.922983 1</string>
        <key>xcode.syntax.keyword</key>
        <string>0.801862 0.471508 0.199898 1</string>
        <key>xcode.syntax.number</key>
        <string>0.585441 0.727116 0.275033 1</string>
        <key>xcode.syntax.plain</key>
        <string>0.901961 0.882353 0.862745 1</string>
        <key>xcode.syntax.preprocessor</key>
        <string>1 0.774968 0.425486 1</string>
        <key>xcode.syntax.string</key>
        <string>0.585441 0.727116 0.275033 1</string>
        <key>xcode.syntax.url</key>
        <string>0.967391 0.959151 0.576175 1</string>
    </dict>
    <key>DVTSourceTextSyntaxFonts</key>
    <dict>
        <key>xcode.syntax.attribute</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.character</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.comment</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.comment.doc</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.comment.doc.keyword</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.class</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.class.system</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.constant</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.constant.system</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.function</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.function.system</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.macro</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.macro.system</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.type</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.type.system</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.variable</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.identifier.variable.system</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.keyword</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.number</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.plain</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.preprocessor</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.string</key>
        <string>Menlo-Regular - 14.0</string>
        <key>xcode.syntax.url</key>
        <string>Menlo-Regular - 14.0</string>
    </dict>
</dict>
</plist>

Apps

除了命令行工具, 也需要一些图形化工具:

其它

暂时想到的就是这些, 有遗漏的话后面我会补充进来。

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询