oeasy教您玩轉(zhuǎn)vim - 28 - 水平移動(dòng)
水平移動(dòng)
回憶上節(jié)課內(nèi)容??
根據(jù)擴(kuò)展名我們可以設(shè)置某些特定類型文件的配置
相關(guān)文件類型的設(shè)置放在相應(yīng)的文件夾里
文件類型縮進(jìn)文件夾
/usr/share/vim/vim81/indent/
文件類型語法高亮文件夾
/usr/share/vim/vim81/syntax/
文件類型插件文件夾
~/.vim/ftplugin/java.vim
~/.vim/ftplugin/java_def.vim
~/.vim/ftplugin/java/header.vim
/usr/share/vim/vim81/ftplugin/java.vim
/usr/share/vim/vim81/ftplugin/java_xxx.vim
/usr/share/vim/vim81/ftplugin/java/xxx.vim
系統(tǒng)通用文件夾
用戶專用插件文件夾
在 文件夾
~/.vim/ftplugin
中 的html.vim
的設(shè)置只針對(duì)
html
包括文件的縮進(jìn)、配色、語法高亮、行號(hào)、狀態(tài)欄等
:filetype indent on
文件類型縮進(jìn)生效:filetype syntax on
文件類型語法高亮生效:filetype plugin on
文件類型插件生效

素材文件
首先我們打開一個(gè)繞口令
git clone http://github.com/overmind1980/vimtutorial.git
vi -u NONE raokouling.txt
打開繞口令
需要單行的長度超過 80 個(gè)字符
設(shè)置不換行
:set nowrap
設(shè)置狀態(tài)條
:set statusline=%f-[%l,%c]
:set laststatus=2
把模式設(shè)置為非兼容
:set nocompatible

橫向滾動(dòng)
一路l到屏幕的盡頭
到 [1,80] 時(shí)候再按下l
整個(gè)屏幕發(fā)生橫向滾動(dòng)
然后光標(biāo)移動(dòng)到屏幕中心位置
光標(biāo)坐標(biāo)顯示為 [1,81]
如果要回來的話也需要移動(dòng)到左邊緣
然后再按h?
整個(gè)屏幕滾動(dòng)回來了

反復(fù)橫跳
橫滾幅度
橫滾的幅度可以通過
sidescroll
來控制默認(rèn) 0 是橫向屏幕 80 字符的一半 40 字符
如果我設(shè)置為 10 的話
在最右邊緣再向右的話,屏幕位置滾動(dòng) 10 個(gè)字符
從 [1,80] 到 [1,81] 的時(shí)候發(fā)生
:h sidescroll

我們?nèi)绻?
sidescroll
變成 1,屏幕橫滾就會(huì)很柔和??還是設(shè)置回10吧
反復(fù)橫跳
橫滾留位
每次我們的橫滾都是在屏幕邊緣發(fā)生的
能否到達(dá)邊緣之前就能看見那邊有什么?
:h sidescrolloff
默認(rèn)是 0,到邊緣才滾動(dòng)
如果我們?cè)O(shè)置為 20
到 [1,60] 的時(shí)候,距離有邊緣有 20
這個(gè)時(shí)候l?整個(gè)屏就會(huì)向右
滾動(dòng)幅度
也就是
sidescroll
所對(duì)應(yīng)的10

把
sidescrolloff
設(shè)置成 99,光標(biāo)在橫向總在中心位置??
橫滾屏快鍵

其實(shí)橫向滾動(dòng)我們用的比較少
但在一屏中滾動(dòng)比較常見
屏內(nèi)跳轉(zhuǎn)

可以參照全屏跳轉(zhuǎn)
前面加個(gè) g
g0 就是跳到屏幕第一個(gè)字符
g^ 就是本屏幕內(nèi)第一個(gè)非空字符
gm 跳到屏幕中間
gM 跳到整個(gè)文本中間
g$ 跳到屏幕末尾
自動(dòng)換行
如果一行太長了我們可以讓他
:set wrap
自動(dòng)換行:h wrap
可以查看幫助手冊(cè)??:set nowrap
可以取消自動(dòng)換行

向上一行
我們一般用j、k上下移動(dòng)
但是如果自動(dòng)換行之后,這上下就不只是一行了
先把行號(hào)顯示出來
:set nu
我們可以通過gj、gk來自動(dòng)換行的一行內(nèi)上下移動(dòng)
換行字符
我在行頭句尾的時(shí)候
如果我想按方向鍵h、l換行
結(jié)果是有效的
如果我用BackSpace
結(jié)果是有效的
但是有的機(jī)器上,卻無效
為什么呢?
這是一個(gè)屬性option
whichwrap
先看看這個(gè)東西現(xiàn)在的值
:set whichwrap?

把他設(shè)置回默認(rèn)的值
:set whichwrap&
&
表示設(shè)置為默認(rèn)值然后再觀察現(xiàn)狀

b,s 是什么意思呢
選項(xiàng)細(xì)節(jié)
:h 'whichwrap'

默認(rèn)只有兩個(gè)
b 是 <BackSpace> 退格
s 是 <Space> 空格
理論上h、l不好使
vi oeasy.java
重新用vi打開
h、l好使
那他是在那里設(shè)置了h、l呢?
查找根源
vim ~/.vimrc
/whichwrap

總結(jié)
我們這次了解了橫向滾動(dòng)的相關(guān)信息
橫滾幅度 -
sidescroll
橫滾留位 -
sidescrolloff
自動(dòng)換行 -
wrap
gj、gk可以逐行上下移動(dòng)
可以控制切換行的控制鍵
whichwrap
這就是橫向移動(dòng)的內(nèi)容
不過程序中一般一行不會(huì)超過80個(gè)字符
縱向移動(dòng)更為普遍
縱向移動(dòng)有什么好玩的嗎???
下次再說 *