제가 개인적으로 사용하고 있는 초기 개발환경 구성 방법들 입니다.
#01. 시스템 환경 설정
1) 미션 컨트롤 창 순서 고정
미션 컨트롤 창 순서가 기본적으로 최근 사용 순으로 설정되어 있어 의도하지 않게 순서가 변경되는 것을 막음
1
| `시스템 환경설정` > `Mission Control` > `Space를 최근 사용 내역에 따라 자동으로 재정렬` 체크 해제
|
2) 모든 텍스트 자동 변경 옵션 끄기
입력한 단어를 컴퓨터 마음대로 바꾸는 걸 방지
1
| `키보드` > `텍스트` 탭으로 이동 : 모든 자동 변경 옵션(체크박스) 끄기
|
#02. 터미널 환경 구성
1) 기본 개발 도구
homebrew
1
| /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
node
python
git
git과 대용량 파일 처리를 도와주는 git-lfs 함께 설치
1
| brew install git git-lfs
|
설치후 아래의 형식으로 기본 설정 수행
1
2
3
4
| git config --global user.name "leekh"
git config --global user.email "leekh4232@gmail.com"
git config --global core.precomposeunicode true
git config --global core.quotepath false
|
3) iTerm2 설치
1
| brew cask install iterm2
|
설치 후 설정
iTerm을 실행하고 설정(⌘
+ ,
)창에서 수행
Profiles
항목을 선택하고 Colors
- 사용하길 원하는 테마 선택
- 적용 후 프로그램 재시작
Profiles
항목을 선택하고 Text
Change Font
버튼을 클릭하고 원하는 글꼴 지정 : D2Coding 추천
- 타이틀바 배경색 어둡게 변경
Appearance
> Theme
: Dark
- High Sierra에서는 현재 Light/Dark 테마만 선택할 수 있으며 임의의 색은 불가능
- 스크롤바 감추기
Appearance
> Hide scrollbars
: 체크함
- 타이틀바 밑에 1px 라인 제거
Appearance
> Show line under title bar when the tab bar is not visible
: 체크 안함
- 마진 수정
Advanced
> Height of top and bottom margins in terminal panes
: 10
Advanced
> Width of left and right margins in terminal panes
: 12
4) zsh with oh-my-zsh
zsh 설치
1
| brew install zsh zsh-completions
|
oh-my-zsh 설치
1
| sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
플러그인 설치 및 설정
1
2
3
4
5
| # zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
|
설치 완료 후 vi에디터로 zsh 설정파일을 연다
설정 파일의 라인
에서 플러그인 설정 추가
1
2
3
4
5
| plugins=(
git
zsh-syntax-highlighting # 추가
zsh-autosuggestions # 추가
)
|
설정 완료 후 다음의 명령어로 설정내용을 반영한다.
zsh 테마
리눅스에서는 사용할 수 없음.
nodejs를 설치한 후 npm 명령어로 pure-prompt 설치
1
| npm install --global pure-prompt
|
설치 완료 후 vi에디터로 zsh 설정파일을 연다
ZSH_THEME의 값을 빈 문자열로 변경한 후 설정파일의 맨 아래에 아래 구문 추가
1
2
| autoload -U promptinit; promptinit
prompt pure
|
설정 완료 후 다음의 명령어로 설정내용을 반영한다.
neovim 설치
설치 완료 후 vi에디터로 zsh 설정파일을 연다
설정 파일 맨 마지막에 아래 내용 추가
1
2
3
4
| alias vim="nvim"
alias vi="nvim"
alias vimdiff="nvim -d"
export EDITOR=/usr/local/bin/nvim
|
설정 완료 후 다음의 명령어로 설정내용을 반영한다.
neovim 폰트 설정
특수문자용 폰트를 별도로 설치한 후 iTerm에 설정해야 한다.
1
2
| brew tap caskroom/fonts
brew cask install font-hack-nerd-font
|
폰트 설치 후,
- iTerm을 실행하고 설정(
⌘
+ ,
)창에서 Profiles
항목을 선택하고 Text
탭으로 이동
Use a different font for non-ASCII text
를 체크 하면 Non-ASCII Font를 설정할 수 있다.
All Fonts
카테고리에서 Hack Nerd Font
를 선택
neovim 기본 설정 플러그인 설치
1
| curl -sLf https://spacevim.org/install.sh | bash
|
- 설치가 완료되면 vi를 실행한다. 최초 실행 시 mode 설정을 물어보는데 여기서
1
을 누른다.
- vi를 종료하고 다시 실행하면 자동으로 플러그인이 설치된다.
- 플러그인이 많아서 시간이 꽤 걸린다.
테마설정
vi 에디터로 vim 설정파일 열기
1
| vi ~/.SpaceVim.d/init.toml
|
colorscheme
속성에 onedark
지정
아래의 활성코드 추가
1
2
| [[layers]]
name = 'colorscheme'
|
https://spacevim.org/layers/colorscheme/ 에서 테마 종류 확인
5) 추가 도구 설치
fzf
fzf는 강력하고 엄청나게 빠른 fuzzy finder 도구입니다. 증분 검색을 통하여 원하는 파일이나 히스토리를 쉽고 빠르게 찾을 수 있게 해줍니다. 정확하게 원하는 값을 입력하지 않고 일부만 입력해도 실시간으로 검색 결과를 보여줍니다.
mac
1
2
| brew install fzf
$(brew --prefix)/opt/fzf/install
|
linux
1
2
| git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
|
brew 설치 후 install 명령어를 입력하면 몇 가지를 물어보는데 전부 y를 누르면 됩니다. 설치가 완료되었으면 source ~/.zshrc
를 입력하여 설정을 다시 불러옵니다.
단축키 기능
⌃
+ T
: 하위 디렉토리 파일 검색
⌃
+ R
: 히스토리 검색
esc
+ C
: 하위 디렉토리 검색 후 이동
fasd
asd는 사용빈도가 높은 파일 또는 디렉토리 검색을 편하게 해서 생산성을 향상시켜주는 도구입니다. 열어본 파일이나 이동한 디렉토리를 기억하고 우선순위를 정해서 빠르게 검색할 수 있게 도와줍니다.
설치가 완료되었으면 ~/.zshrc
에 plugin을 추가
1
2
3
4
5
| plugins=(
...
...
fasd
)
|
전부 완료되었으면 source ~/.zshrc
를 입력하여 설정을 다시 불러옵니다.
단축키 기능
z
: 디렉토리 이동
s
: 파일 or 디렉토리 검색
6) tig
git commit history 뷰어
7) jq
터미널에서 jSONViewer
추가 환경 설정 스크립트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| alias php='/Applications/MAMP/bin/php/php7.1.20/bin/php'
alias mysql='/Applications/MAMP/Library/bin/mysql'
alias mysqldump='/Applications/MAMP/Library/bin/mysqldump'
alias ls='ls -l'
# cd into whatever is the forefront Finder window.
cdf() { # short for cdfinder
cd "`osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)'`"
}
# git add,commit,push all-in-one
commit() {
local message=$1
if [ "$message" = "" ]
then
echo "Param is null"
message="commit by $USERNAME - $(date '+%y/%m/%d %H:%M')"
fi
echo "$ git add --all"
git add --all
echo "-------------------------------------"
echo "$ git commit -m '${message}'"
git commit -m "${message}"
}
push() {
echo "$ git push origin master"
git push origin master
}
fpush() {
echo "$ git push -f origin master"
git push -f origin master
}
cpush() {
commit $1
echo "-------------------------------------"
push
}
cfpush() {
commit $1
echo "-------------------------------------"
fpush
}
fcpush() {
commit $1
echo "-------------------------------------"
fpush
}
pull() {
echo "$ git pull origin master"
git pull origin master
}
fpull() {
echo "$ git pull -f origin master"
git pull -f origin master
}
tarzip() {
echo "$ tar -zcvf $1.tar.gz $1"
echo "-------------------------------------"
tar -zcvf $1.tar.gz $1
}
tarunzip() {
echo "$ tar -zxvf $1"
echo "-------------------------------------"
tar -zxvf $1
}
|