0.前言
在說Manjaro之前,要先說一下Linux發行版。對於各大發行版而言,內核只有版本的差異,最重要的區別就是包管理系統。常見的包管理系統包括:Pacman,Apt , Yum和Portage。在學習Linux的過程中,和大數人一樣,一開始接觸的是Ubuntu。之后是Ubuntu的衍生版Elementary OS和Xubuntu。放棄Ubuntu的原因有很多,其一是Ubuntu並不友好,側邊欄在軟件過多時一點都不好用,其二是Ubuntu沒有桌面圖標,設置比較繁瑣。但是真正讓我開始考慮其他發行版的原因是:有一些軟件在Ubuntu上安裝比較困難,沒有現成的包可用,而且apt的下載速度總是不夠理想。
Elementary OS比Ubuntu漂亮,之后我了解到這是Xfce和Gnome的差異。總的來說,我個人覺得Xfce的界面確實比較友好一點,至於KDE也覺得不好用。Xubuntu是基於Xfce的Ubuntu的衍生版,所以我也用過了一小段時間。
至於接觸ArchLinux,有一定的偶然。ArchLinux的原版對於初學者來說,安裝是有一點困難的。我最初試了幾次,都失敗了。后來雖然成功安裝了,但是配置GUI總是不理想。於是開始嘗試ArchLinux的發行版,如ArchBang和Manjaro。最后選擇了Manjaro的Xfce版。
下面是http://distrowatch.com/最近的狀態:
作為ArchLinux的發行版,ArchBang和Manjaro都在其中,其熱度可見一斑。而Manjaro大概是滿足我的基本需求:比較友好的界面(Xfce),比較快的軟件更新速度(Pacman)。雖然我裝過一次Gentoo的發行版Sabayon Linux,但是界面比較丑。
1.Manjaro的安裝與配置
Manjaor的官網:https://manjaro.org/。進入:https://manjaro.org/get-manjaro/,然后下載Manjaro XFCE 32-bit 。
本文假定你具備在VMware安裝Linux或者通過U盤在物理機上安裝Linux的能力,參考:Manjaro 安裝記,Manjaro 安裝配置。
安裝完成后可以設置一下Teminal和Mousepad。
Teminal設置:14號Droid Sans Mono字體,透明度約0.5。如圖所示:
Mousepad設置:14號Droid Sans Mono字體,顏色方案:Classic。如圖所示:
記得換成國內比較快的源。系統->軟件更新->首選項->官方軟件倉庫。選擇China按速度排序。
也可以自己設置mirrorlist,文件位於:/etc/pacman.d/mirrorlist。我的mirrorlist:

1 ## 2 ## Manjaro Linux repository mirrorlist 3 ## Generated on 01 January 2017 09:55 4 ## 5 ## Use pacman-mirrors to modify 6 ## 7 8 ## Location : China 9 ## Time : 0.033 10 ## Last Sync : 11 Server = http://ftp.cuhk.edu.hk/pub/Linux/manjaro/stable/$repo/$arch 12 13 ## Location : China 14 ## Time : 0.190 15 ## Last Sync : 16 Server = http://mirrors.tuna.tsinghua.edu.cn/manjaro/stable/$repo/$arch 17 18 ## Location : China 19 ## Time : 1.414 20 ## Last Sync : 21 Server = http://mirrors.ustc.edu.cn/manjaro/stable/$repo/$arch
軟件安裝:使用GUI或者Pacman。Pacman使用見ArchLinux的Wiki。
2.MSYS2的安裝和配置
在很多情況下,需要在Windows下使用一些Linux下的常見軟件,如grep,awk , gcc , gmp , gsl等。雖然Windows10提供了Windows Subsystem for Linux(WSL),但是依然不成熟。常見的方案是:MSYS,GnuWin32以及 Cygwin。不過,cygwin比較繁瑣。使用MSYS2算是一個比較好的方案。
MSYS2的官網:http://msys2.github.io/。配置參考:MSYS2開發環境搭建,MSYS2的源配置。
MSYS2的源配置:mirrorlist.msys、mirrorlist.mingw64和mirrorlist.mingw32。

1 ## 2 ## MSYS2 repository mirrorlist 3 ## Changed on 2014-11-15 4 ## 5 ##中國科學技術大學開源軟件鏡像 6 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MSYS2/$arch 7 ##北京理工大學鏡像 8 Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch 9 ##日本北陸先端科學技術大學院大學 sourceforge 鏡像 10 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MSYS2/$arch 11 ##The UK Mirror Service Sourceforge mirror 12 Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch 13 ## Primary 14 Server = ftp://148.251.42.38/MSYS2/$arch 15 ## Sourceforge.net 16 Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch

1 ## 2 ## 64-bit Mingw-w64 repository mirrorlist 3 ## Changed on 2014-11-15 4 ## 5 ##中國科學技術大學開源軟件鏡像 6 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/x86_64 7 ##北京理工大學鏡像 8 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64 9 ##日本北陸先端科學技術大學院大學 sourceforge 鏡像 10 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64 11 ##The UK Mirror Service Sourceforge mirror 12 Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64 13 ## Primary 14 Server = ftp://148.251.42.38/MINGW/x86_64 15 ## Sourceforge.net 16 Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64

1 ## 2 ## 32-bit Mingw-w64 repository mirrorlist 3 ## Changed on 2014-11-15 4 ## 5 ##中國科學技術大學開源軟件鏡像 6 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/i686 7 ##北京理工大學鏡像 8 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686 9 ##日本北陸先端科學技術大學院大學 sourceforge 鏡像 10 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686 11 ##The UK Mirror Service Sourceforge mirror 12 Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686 13 ## Primary 14 Server = ftp://148.251.42.38/MINGW/i686 15 ## Sourceforge.net 16 Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
如果只是使用32的x86軟件,可以在pacman.conf中屏蔽掉mingw64。
1 [mingw32] 2 Include = /etc/pacman.d/mirrorlist.mingw32 3 4 # [mingw64] 5 # Include = /etc/pacman.d/mirrorlist.mingw64 6 7 [msys] 8 Include = /etc/pacman.d/mirrorlist.msys
Mintty設置:14號Consolas字體,透明度:高。如圖所示:
安裝Clang和Vim示例:
3.其他軟件和配置
Vim的配置.vimrc示例:
1 syntax on 2 set hls is 3 set number 4 set ruler 5 set cindent 6 set tabstop=4 7 set shiftwidth=4 8 set softtabstop=4 9 set autoindent 10 set smarttab 11 set smartindent 12 set cursorline 13 set nobackup 14 set noswapfile 15 set mouse=a 16 set helplang=cn 17 set backspace=indent,eol,start 18 19 augroup filetypedetect 20 au BufNewFile,BufRead *.asy setf asy 21 augroup END 22 filetype plugin on 23 24 "--------------------------------------" 25 func CodeFormat() 26 let lineNum = line(".") 27 if &filetype == 'c' 28 exec "%! astyle -A3Lfpjk3NS\<CR>" 29 elseif &filetype == 'cpp' 30 exec "%! astyle -A3Lfpjk3NS\<CR>" 31 elseif &filetype == 'java' 32 exec "%! astyle -A2Lfpjk3NS\<CR>" 33 else 34 echo "Can't support".&filetype."file type." 35 endif 36 exec lineNum 37 endfunc 38 "--------------------------------------" 39 map <S-F> <Esc>:call CodeFormat()<CR> 40 "--------------------------------------" 41 func CodeRun() 42 exec "w" 43 if &filetype=="c" 44 exec "!clear&&tcc -run %" 45 elseif &filetype=="cpp" 46 exec "!clear&&g++ -o %< && ./%<" 47 elseif &filetype=="java" 48 exec "!clear&&javac % && java %<" 49 elseif &filetype=="python" 50 exec "!clear&&python %" 51 endif 52 endfunc 53 "--------------------------------------" 54 map <F5> <ESC> :call CodeRun()<CR> 55 imap <F5> <ESC> :call CodeRun()<CR> 56 vmap <F5> <ESC> :call CodeRun()<CR>
Windows下Mintty和Vim配置右鍵菜單示例Vim.reg:
1 Windows Registry Editor Version 5.00 2 3 [HKEY_CLASSES_ROOT\*\shell] 4 5 [HKEY_CLASSES_ROOT\*\shell\Vim] 6 @="Vim" 7 8 [HKEY_CLASSES_ROOT\*\shell\Vim\Command] 9 @="D:\\Software\\MSYS2\\usr\\bin\\mintty.exe -e D:\\Software\\MSYS2\\usr\\bin\\vim.exe %1"
如圖所示,用Mintty結合Vim打開C語言文件:
打開opengl.c的效果:
4.其他可能需要的軟件:
流程圖軟件Graphviz , 代碼閱讀軟件Understand , 文檔閱讀SumatraPDF(可與GhostScript結合) ,搜索軟件Everything。
矢量圖形描述語言:Asymptote。代碼編輯器請使用Notepad++,代碼格式化結合NppStyle使用。Python集成包請使用:Anaconda。