vim 與vi的相容性問題

2021-05-22 16:37:18 字數 1815 閱讀 1451

周海漢/文 2009.2.3

1. 安裝了個vim7.0,但發現編輯模式下退格鍵backspace和上下左右游標移動鍵不能用,非常不方便。

在編輯模式下,移動游標會變成a b c d等字元並換行。

view plain

copy to clipboard

print?

b  

c  

d  

b  

a  

原來vim預設是vi相容模式,設定成不相容模式就好了:

:set nocp

可以用help檢視相關的設定。

:help cp

:help compatible

2.開啟乙個已存在的檔案後,檔案中的字元,不能用backspace鍵刪除。但是此時如果輸入新的字元,卻可以用backspace進行刪除。這是怎麼回事?

檢視幫助:

:help bs

:help backspace

原來,backspace有幾種工作方式,預設是vi相容的。對新手來說很不習慣。對老vi 不那麼熟悉的人也都挺困擾的。可以用

:set backspace=indent,eol,start

來解決。

indent: 如果用了:set indent,:set ai 等自動縮排,想用退格鍵將字段縮排的刪掉,必須設定這個選項。否則不響應。

eol:如果插入模式下在行開頭,想通過退格鍵合併兩行,需要設定eol。

start:要想刪除此次插入前的輸入,需設定這個。

3.游標在行尾按右方向鍵不到下一行行首,在行首按左方向鍵不到上一行行尾,怎麼回事?

:help ww

:help whichwrap

想用左移鍵回到上一行的行尾,在行尾用右移鍵能夠到下一行的開頭,通過設定 whichwrap 我們可以對一部分按鍵開啟這項功能。 如果想對某乙個或幾個按鍵開啟到頭後自動折向下一行的功能, 可以把需要開啟的鍵的代號寫到 whichwrap 的引數列表中,各個鍵之間使用逗號分隔。

以下是 whichwrap 支援的按鍵名稱列表:

b: 在 normal 或 visual 模式下按刪除(backspace)鍵。

s: 在 normal 或 visual 模式下按空格鍵。

h: 在 normal 或 visual 模式下按 h 鍵。

l: 在 normal 或 visual 模式下按 l 鍵。

<: 在 normal 或 visual 模式下按左方向鍵。

>: 在 normal 或 visual 模式下按右方向鍵。

~: 在 normal 模式下按 ~ 鍵(翻轉當前字母大小寫)。

[: 在 insert 或 replace 模式下按左方向鍵。

]: 在 insert 或 replace 模式下按右方向鍵。

4. 如何將tab鍵替換為空格?

編輯python檔案時,按tab鍵不能自動替換為空格,應如何處理?

:set ai

:set shiftwidth=4

:set sw=4

自動縮排的時候, 縮排尺寸為 4 個空格。

:set tabstop=4

:set ts=4

tab 寬度為 4 個字元。

:set expandtab

:set et

編輯時將所有 tab 替換為空格。

該選項只在編輯時將 tab 替換為空格, 如果開啟乙個已經存在的檔案, 並不會將已有的tab 替換為空格。 如果希望進行這樣的替換的話, 可以使用這條命令「:retab」。

vim 與vi的相容性問題

1.安裝了個vim7.0,但發現編輯模式下退格鍵backspace和上下左右游標移動鍵不能用,非常不方便。在編輯模式下,移動游標會變成a b c d等字元並換行。ab cd原來vim預設是vi相容模式,設定成不相容模式就好了 set nocp 可以用help檢視相關的設定。help cp help ...

piczoom相容性問題 相容性問題

1.文字本身的大小不相容。同樣是font size 14px的宋體文字,在不同瀏覽器下佔的空間是不一樣的,ie下實際佔高16px,下留白3px,ff 下實際佔高17px,上留白1px,下留白3px,opera下就更不一樣了。解決方案 給文字設定 line height 確保所有文字都有預設的 lin...

相容性問題

原文 1.ie浮動 margin 產生的雙倍距離 box 2.display inline block ie6,7下不相容 用float left 3.position fixed ie6不支援 ie6下用position和js模擬,或者完全不用,用position和js模擬 4.cursor ha...