<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 9.4 其他 vim 使用注意事項 vim 其實不是那么好學,雖然他的功能確實非常強大!所以下面我們還有一些需要注意的地方要來跟大家分享喔! ### 9.4.1 中文編碼的問題 很多朋友常常哀嚎,說他們的 vim 里面怎么無法顯示正常的中文啊?其實這很有可能是因為編碼的問題! 因為中文編碼有 big5 與 utf8 兩種,如果你的文件是使用 big5 編碼制作的,但在 vim 的終端接口中你使用的是萬國碼(utf8), 由于編碼的不同,你的中文文件內容當然就是一堆亂碼了!怎么辦?這時你得要考慮許多東西啦!有這些: 1. 你的 Linux 系統默認支持的語系數據:這與 /etc/locale.conf 有關; 2. 你的終端接口 (bash) 的語系: 這與 LANG, LC_ALL 這幾個變量有關; 3. 你的文件原本的編碼; 4. 打開終端機的軟件,例如在 GNOME 下面的窗口接口。 事實上最重要的是上頭的第三與第四點,只要這兩點的編碼一致,你就能夠正確的看到與編輯你的中文文件。 否則就會看到一堆亂碼啦! 一般來說,中文編碼使用 big5 時,在寫入某些數據庫系統中,在“許、蓋、功”這些字體上面會發生錯誤! 所以近期以來大多希望大家能夠使用萬國碼 utf8 來進行中文編碼!但是在中文 Windows 上的軟件常常默認使用 big5 的編碼 (不一定是 windows 系統的問題,有時候是某些中文軟件的默認值之故), 包括鳥哥由于沿用以前的文件數據文件,也大多使用 big5 的編碼。此時就得要注意上述的這些咚咚啰。 在 Linux 本機前的 tty1~tty6 原本默認就不支持中文編碼,所以不用考慮這個問題!因為你一定會看到亂碼!呵呵! 現在鳥哥假設俺的文件文件內編碼為 big5 時,而且我的環境是使用 Linux 的 GNOME ,啟動的終端接口為 GNOME-terminal 軟件, 那鳥哥通常是這樣來修正語系編碼的行為: ``` [dmtsai@study ~]$ LANG=zh_TW.big5 [dmtsai@study ~]$ export LC_ALL=zh_TW.big5 ``` 然后在終端接口工具列的“終端機”--&gt;“設置字符編碼” --&gt;“中文 (正體) (BIG5)”項目點選一下, 如果一切都沒有問題了,再用 vim 去打開那個 big5 編碼的文件,就沒有問題了!以上!報告完畢! ### 9.4.2 DOS 與 Linux 的斷行字符 我們在[第六章](../Text/index.html)里面談到 [cat](../Text/index.html#cat) 這個指令時,曾經提到過 DOS 與 Linux 斷行字符的不同。 而我們也可以利用 cat -A 來觀察以 DOS (Windows 系統) 創建的文件的特殊格式, 也可以發現在 DOS 使用的斷行字符為 ^M$ ,我們稱為 CR 與 LF 兩個符號。 而在 Linux 下面,則是僅有 LF ($) 這個斷行符號。這個斷行符號對于 Linux 的影響很大喔! 為什么呢? 我們說過,在 Linux 下面的指令在開始執行時,他的判斷依據是 “Enter”,而 Linux 的 Enter 為 LF 符號, 不過,由于 DOS 的斷行符號是 CRLF ,也就是多了一個 ^M 的符號出來, 在這樣的情況下,如果是一個 shell script 的程序文件,呵呵~將可能造成“程序無法執行”的狀態~ 因為他會誤判程序所下達的指令內容啊!這很傷腦筋吧! 那怎么辦啊?很簡單啊,將格式轉換成為 Linux 即可啊!“廢話”,這當然大家都知道,但是, 要以 vi 進入該文件,然后一個一個刪除每一列的 CR 嗎?當然沒有這么沒人性啦! 我們可以通過簡單的指令來進行格式的轉換啊! 不過,由于我們要操作的指令默認并沒有安裝,鳥哥也無法預期你有沒有網絡,因此假設你沒有網絡的狀況下, 請拿出你的原版光盤,放到光驅里頭去,然后使用下面的方式來安裝我們所需要的這個軟件喔! ``` [dmtsai@study ~]$ su - # 安裝軟件一定要是 root 的權限才行! [root@study ~]# mount /dev/sr0 /mnt [root@study ~]# rpm -ivh /mnt/Packages/dos2unix-* warning: /mnt/Packages/dos2unix-6.0.3-4.el7.x86_64.rpm: Header V3 RSA/SHA256 .... Preparing... ################################# [100%] Updating / installing... 1:dos2unix-6.0.3-4.el7 ################################# [100%] [root@study ~]# umount /mnt [root@study ~]# exit ``` 那就開始來玩一玩這個字符轉換吧! ``` [dmtsai@study ~]$ dos2unix [-kn] file [newfile] [dmtsai@study ~]$ unix2dos [-kn] file [newfile] 選項與參數: -k :保留該文件原本的 mtime 時間格式 (不更新文件上次內容經過修訂的時間) -n :保留原本的舊文件,將轉換后的內容輸出到新文件,如: dos2unix -n old new 范例一:將 /etc/man_db.conf 重新復制到 /tmp/vitest/ 下面,并將其修改成為 dos 斷行 [dmtsai@study ~]# cd /tmp/vitest [dmtsai@study vitest]$ cp -a /etc/man_db.conf . [dmtsai@study vitest]$ ll man_db.conf -rw-r--r--. 1 root root 5171 Jun 10 2014 man_db.conf [dmtsai@study vitest]$ unix2dos -k man_db.conf unix2dos: converting file man_db.conf to DOS format ... # 屏幕會顯示上述的訊息,說明斷行轉為 DOS 格式了! [dmtsai@study vitest]$ ll man_db.conf -rw-r--r--. 1 dmtsai dmtsai 5302 Jun 10 2014 man_db.conf # 斷行字符多了 ^M ,所以容量增加了! 范例二:將上述的 man_db.conf 轉成 Linux 斷行字符,并保留舊文件,新文件放于 man_db.conf.linux [dmtsai@study vitest]$ dos2unix -k -n man_db.conf man_db.conf.linux dos2unix: converting file man_db.conf to file man_db.conf.linux in Unix format ... [dmtsai@study vitest]$ ll man_db.conf* -rw-r--r--. 1 dmtsai dmtsai 5302 Jun 10 2014 man_db.conf -rw-r--r--. 1 dmtsai dmtsai 5171 Jun 10 2014 man_db.conf.linux [dmtsai@study vitest]$ file man_db.conf* man_db.conf: ASCII text, with CRLF line terminators # 很清楚說明是 CRLF 斷行! man_db.conf.linux: ASCII text ``` 因為斷行字符以及 DOS 與 Linux 操作系統下面一些字符的定義不同,因此, 不建議你在 Windows 系統當中將文件編輯好之后,才上傳到 Linux 系統,會容易發生錯誤問題。 而且,如果你在不同的系統之間復制一些純文本時,千萬記得要使用 unix2dos 或 dos2unix 來轉換一下斷行格式啊! ### 9.4.3 語系編碼轉換 很多朋友都會有的問題,就是想要將語系編碼進行轉換啦!舉例來說,想要將 big5 編碼轉成 utf8 。 這個時候怎么辦?難不成要每個文件打開會轉存成 utf8 嗎?不需要這樣做啦!使用 iconv 這個指令即可! 鳥哥將之前的 vi 章節做成 big5 編碼的文件,你可以照下面的鏈接來下載先: * [http://linux.vbird.org/linux_basic/0310vi/vi.big5](http://linux.vbird.org/linux_basic/0310vi/vi.big5) 在終端機的環境下你可以使用“ wget 網址”來下載上述的文件喔!鳥哥將他下載在 /tmp/vitest 目錄下。 接下來讓我們來使用 iconv 這個指令來玩一玩編碼轉換吧! ``` [dmtsai@study ~]$ iconv --list [dmtsai@study ~]$ iconv -f 原本編碼 -t 新編碼 filename [-o newfile] 選項與參數: --list :列出 iconv 支持的語系數據 -f :from ,亦即來源之意,后接原本的編碼格式; -t :to ,亦即后來的新編碼要是什么格式; -o file:如果要保留原本的文件,那么使用 -o 新文件名,可以創建新編碼文件。 范例一:將 /tmp/vitest/vi.big5 轉成 utf8 編碼吧! [dmtsai@study ~]$ cd /tmp/vitest [dmtsai@study vitest]$ iconv -f big5 -t utf8 vi.big5 -o vi.utf8 [dmtsai@study vitest]$ file vi* vi.big5: ISO-8859 text, with CRLF line terminators vi.utf8: UTF-8 Unicode text, with CRLF line terminators # 是吧!有明顯的不同吧! ^_^ ``` 這指令支持的語系非常之多,除了正體中文的 big5, utf8 編碼之外,也支持簡體中文的 gb2312 , 所以對岸的朋友可以簡單的將鳥站的網頁數據下載后,利用這個指令來轉成簡體,就能夠輕松的讀取文件數據啰! 不過,不要將轉成簡體的文件又上傳成為您自己的網頁啊!這明明是鳥哥寫的不是嗎? ^_^ 不過如果是要將正體中文的 utf8 轉成簡體中文的 utf8 編碼時,那就得費些功夫了! 舉例來說,如果要將剛剛那個 vi.utf8 轉成簡體的 utf8 時,可以這樣做: ``` [dmtsai@study vitest]$ iconv -f utf8 -t big5 vi.utf8 &#124; \ &gt; iconv -f big5 -t gb2312 &#124; iconv -f gb2312 -t utf8 -o vi.gb.utf8 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看