久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vim激荡30年发展史

發布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vim激荡30年发展史 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


作者 |?Joe Nelson

譯者 | 彎月,編輯?| 屠敏

來源 | CSDN(ID:CSDNnews)


導語:眾所周知,Vim 是從 vi 發展出來的一個文本編輯器。其擁有代碼補全、編譯及錯誤跳轉等豐富的功能特性,在程序員群體中廣受歡迎。

本文是作者?Joe Nelson?從頭到尾閱讀 Vim 用戶手冊以及追溯歷史之后的一些心得。希望這些筆記能夠幫助大家發現這款編輯器的核心功能,從而更加熟練地使用各個插件。

如果你想進一步了解Vim,那么我建議你入手一本紙質的用戶手冊和優秀的袖珍參考手冊。我沒有找到官方的Vim紙質手冊,最后只好打印了這個PDF(https://begriffs.com/pdf/vim-user-manual.pdf)。為了方便查看Vim的命令列表,我建議你入手上圖中的《vi and Vim Editors Pocket Reference》。


歷史


Vi的誕生

Vi源自QED編輯器,距今已有五十多年的歷史。其發展歷程如下:

  • 1966年:伯克利分時系統的QED(“Quick EDitor”)

  • 1969年7月:登月(僅供參考)

  • 1969年8月:QED -> AT&T的ed

  • 1976年2月:ed ->瑪麗王后大學的em(“Editor for Mortals”)

  • 1976年:em -> 加州大學伯克利分校的ex (“EXtended”)

  • 1977年10月:ex有了可視化模式,vi

閱讀一下用戶手冊,你就會發現QED和ex之間有很多相似之處。這兩個編輯器在指定和操作行范圍時都采用了類似的語法。

QED、ed和em這類的編輯器都是為硬拷貝終端設計的,這些終端基本上就是帶調制解調器的電動打字機。硬拷貝終端可以將系統輸出打印到紙上。顯然一旦打印完成,就無法更改輸出,因此這種編輯過程需要包含用于更新和手動打印文本范圍的命令。

到1976年的時候,ADM-3A等視頻可視化終端出現了。Ex編輯器添加了一個“開放模式”,允許在可視化終端上進行行內編輯,還有一個可視化模式,可以在支持光標的終端上面利用屏幕進行編輯。這種可視模式(可以通過命令“vi”激活)可以在屏幕上顯示部分文件的最新視圖,同時還保留了屏幕底部的ex命令行。(趣事:在ADM-3A上,h、j、k、l鍵兼作方向鍵,所以vi選擇這幾個鍵作為光標移動只是為了保持一致而已。)

如果你想了解更多關于從ed到ex / vi的發展,可以閱讀Bill Joy的這段采訪(https://begriffs.com/pdf/unix-review-bill-joy.pdf),他在文中談到了ex / vi的創建過程,以及一些令他失望的事情。

傳統的vi實際上只是ex的另一種形式,它們的可執行文件是同一個,根據調用時的可執行文件名來決定啟動ex模式還是vi模式。ex / vi對之前的版本進行了改進,只需很少的系統資源,就可以在有限的帶寬下操作。而且該工具還支持于大多數系統,完全符合POSIX標準。

從vi到vim

作為ed的衍生物,ex / vi編輯器的版權屬于AT&T。如果想在Unix以外的平臺上使用vi,就必須重新編寫不使用任何原始代碼的克隆版本。

克隆版本有很多,下面列出了一部分:

  • nvi:1980年,4BSD版

  • calvin:1987年,DOS版

  • vile:1990年,DOS版

  • stevie:1987年,Atari ST版

  • elvis:1990年,Minix和386BSD版

  • vim:1991年,Amiga版

  • viper:1995年,Emacs版

  • elwin:1995年,Windows版

  • lemmy:2002年,Windows版

下面,我們來重點看一看中間的vim。Bram Moolenaar希望在Amiga上使用vi。于是,他從Atari移植了Stevie,并對其進行了改進。他給自己的這一版起名為“Vi IMitation”。有關完整的第一手資料,請參閱自由軟件雜志對Bram的采訪(https://begriffs.com/pdf/vim-interview.pdf)。

在版本1.22中,Vim被重新命名為“Vi IMproved”,它完全實現并且超越了vi的功能。以下是主流版本及其重要功能的發展歷程:

  • 1991年11月2日,Vim 1.14:首次發布(Fred Fish disk #591)。

  • 1992年,Vim 1.22:移植到Unix。Vim開始與Vi并駕齊驅。

  • 1994年8月12日,Vim 3.0:支持多個緩沖區和窗口。

  • 1996年5月29日,Vim 4.0:圖形用戶界面(主要由Robert Webb提供)。

  • 1998年2月19日,Vim 5.0:語法著色/高亮顯示。

  • 2001年9月26日,Vim 6.0:折疊,插件,垂直分割。

  • 2006年5月8日,Vim 7.0:拼寫檢查,自動補齊,撤消分支,標簽。

  • 2016年9月12日,Vim 8.0:作業,異步I / O,本機包。

有關各個版本的詳細信息,請查看:help vim8。如果想了解未來的計劃,以及已知的bug,請查看:help todo.txt。

受到來自競爭對手NeoVim的壓力,Vim 8.0加入了異步作業的支持,NeoVim的開發人員希望在編輯器中直接運行Web腳本的調試器和REPL。

Vim超級便攜。在漫長的發展過程中,為了支持多種平臺,vim本身不得不保持便攜。它可以在各種平臺上運行,包括OS / 390、Amiga、BeOS和BeBox、Macintosh classic、Atari MiNT、MS-DOS、OS / 2、QNX、RISC-OS、BSD、Linux、OS X、VMS和MS-Windows等。無論哪種計算機都可以使用Vim。

在vi發展歷程的最后一個轉折點上,最原始的ex / vi源代碼最終于2002年在BSD免費軟件許可下發布了。請點擊這里獲取(http://ex-vi.sourceforge.net/)。

下面干貨來了。在深入Vim的使用技巧之前,先讓我們了解一下Vim的組織以及讀取配置文件的方式。


配置層次結構


我曾經錯誤地認為,Vim僅從?/ .vimrc文件中讀取其所有設置和腳本。閱讀各種“dotfiles”的代碼庫更堅定了我的這一看法。通常人們覺得只通過一個.vimrc文件來控制編輯器的各個方面是一種危險的做法。這些龐大的配置文件有時被稱為“vim發行版”。

實際上,Vim的結構非常整潔,.vimrc只是多個配置文件中的其中一個而已。其實,你可以讓Vim告訴你究竟加載了哪些腳本。試試看:任意編輯計算機上的某個源代碼文件。加載后,運行如下命令:


:scriptnames?


花點時間讀完整個清單。猜猜看這些腳本可能會做些什么,并記下它們所在的目錄。

清單比你預期的要長嗎?如果你安裝了大量插件的話,那么編輯器需要做大量工作。你可以通過以下命令檢查是什么導致編輯器的速度變慢,然后再看看它創建的start.log:


vim?--startuptime?start.log?name-of-your-fileof-your-file


為了比較起見,下面我們看看如果沒有這些配置,Vim的啟動速度有多快:


vim?--clean?--startuptime?clean.log?name-of-your-fileof-your-file


為了確定啟動時或加載緩沖區時會運行哪些腳本,Vim會遍歷“runtimepath”。該設置是一組以逗號分隔的目錄列表,各個目錄的結構都是一致的。Vim會檢查每個目錄的結構,找到需要運行的腳本,并按照目錄在列表中的順序一一處理。

運行以下命令就可以檢查系統上的runtimepath:


:set?runtimepath


在我的系統上,runtimepath默認包含以下目錄。并非所有這些都必須出現在文件系統中,但如果存在就會被使用。

  • ~/.vim

    主目錄,保存個人偏好的文件。

  • /usr/local/share/vim/vimfiles

    系統范圍的Vim目錄,保存由系統管理員決定的文件。

  • /usr/local/share/vim/vim81

    即$VIMRUNTIME,保存與Vim一起分發的文件。

  • /usr/local/share/vim/vimfiles/after

    系統范圍Vim目錄中的“after”目錄。系統管理員可以利用該目錄來覆蓋默認設置,或添加新的設置。

  • ~/.vim/after

    主目錄中的“after”目錄??梢岳迷撃夸浻脗€人偏好覆蓋默認設置或系統設置,或添加新的設置。

這些目錄會按照順序處理,所以要說“after”目錄有什么特別的話,那就是它位于列表末尾。實際上“after”并沒有什么特別之處。

在處理每個目錄時,Vim都會查找具有特定名稱的子文件夾。如果想了解更多這方面的信息,請參閱:help runtimepath。下面我們只挑部分進行說明。

  • plugin/

    編輯任何類型的文件都會自動加載的Vim腳本文件,稱為“全局插件”。

  • autoload/

    (不要與“插件”相混淆。)自動加載中的腳本包含僅在其他腳本請求時加載的函數。

  • ftdetect/

    用于檢測文件類型的腳本??梢愿鶕募U展名、位置或內部文件內容決定文件類型。

  • ftplugin/

    編輯已知類型的文件時執行的腳本。

  • compiler/

    定義如何運行各種編譯器或格式化工具,以及如何解析其輸出。可以在多個ftplugins之間共享。且不會自動執行,必須通過 :compiler 調用。

  • pack/

    Vim 8原生軟件包的目錄,它采用了“Pathogen”格式的包管理。原生的包管理系統不需要任何第三方代碼。

最后,通用的編輯器設置都會放到~/.vimrc中。你可以通過它來設置用于覆蓋特定文件類型的默認值。有關.vimrc設置的全面講解,請運行 :options。


第三方插件


在Vim中,插件只是腳本,必須放在runtimepath中的正確位置才能執行。從概念上講,插件的安裝非常簡單:只需下載文件。問題在于,很難刪除或更新某些插件,因為它們的子目錄加入到了runtimepath中,很難判斷哪個插件負責哪些文件。

為了滿足這種需求,網上出現了很多插件管理器。最早在2003年就出現了Vim.org插件倉庫。然而,直到2008年左右,插件管理器的概念才真正流行起來。

這些工具在Vim的runtimepath中添加了單獨的查檢目錄,并會為插件文檔編譯幫助標簽。大多數插件管理器還可以從網上安裝和更新插件代碼,有的還支持并行更新,或者顯示彩色的進度條。

以下是按時間順序整理的插件管理器。我按照每個插件最早和最新版本進行了排序,如果找不到官方的發行版本,則根據最早和最后的提交日期排序。

  • 2006年3月- 2014年7月:Vimball(分發格式和關聯的Vim命令)

  • 2008年10月- 2015年12月:Pathogen(由于原生vim包被棄用)

  • 2009年8月- 2009年12月:Vimana

  • 2009年12月- 2014年12月:VAM

  • 2010年8月 - 2010年12月:Jolt

  • 2010年10月 - 2012年12月:tplugin

  • 2010年10月 - 2014年2月:Vundle(在NeoBundle破解代碼后停止使用)

  • 2012年3月 - 2018年3月:vim-flavor

  • 2012年4月 - 2016年3月:NeoBundle(被棄用,建議使用dein)

  • 2013年1月 - 2017年8月:infect

  • 2013年2月 - 2016年8月:vimogen

  • 2013年10月 - 2015年1月:vim-unbundle

  • 2013年12月 - 2015年7月:Vizardry

  • 2014年2月 - 2018年10月:vim-plug

  • 2015年1月 - 2015年10月:enabler

  • 2015年8月 - 2016年4月:Vizardry 2

  • 2016年1月 - 2018年6月:dein.vim

  • 2016年9月 - 至今:原生Vim 8

  • 2017年2月 - 2018年9月:minpac

  • 2018年3月 - 2018年3月:autopac

  • 2017年2月 - 2018年6月:pack

  • 2017年3月 - 2017年9月:vim-pck

  • 2017年9月 - 2017年9月:vim8-pack

  • 2017年9月 - 2019年5月:volt

  • 2018年9月 - 2019年2月:vim-packager

  • 2019年2月 - 2019年2月:plugpac.vim

  • 首先要注意,這些工具五花八門,其次通常每個工具在活躍大約四年后就會過時。

    最穩定的管理插件的方法是使用Vim 8的內置功能,該功能不需要第三方代碼。下面讓我們具體來看看這種方法。

    首先在運行時目錄的pack目錄中創建兩個目錄opt和start。


    mkdir?-p?~/.vim/pack/foobar/{opt,start}/foobar/{opt,start}


    注意占位符 foobar。這個名稱完全取決于你。我們用它對包進行分類。大多數人會把所有的插件都扔進一個無意義的類別中,這樣完全沒問題。你可以選擇自己喜歡的名稱,在本文中我選擇使用 foobar。理論上,你也可以創建多個類別,比如~/.vim/pack/navigation, ~/.vim/pack/linting等。請注意,Vim不會檢測類別之間的重復,如果存在重復,則會加載兩次。

    “start”中的包會自動加載。而對于“opt”中的包,只有通過:packadd命令特別請求,Vim才會加載。opt中適合保存不常用的軟件包,以及為保持Vim的快速啟動不必要運行的腳本。請注意,:packadd沒有相反的命令卸載包。

    在下述示例子中,我們將添加“ctrlp”模糊查找插件到opt目錄。下載最新版本的命令如下:


    curl?-L?https://github.com/kien/ctrlp.vim/archive/1.79.tar.gz?\????|?tar?zx?-C?~/.vim/pack/foobar/opt/github.com/kien/ctrlp.vim/archive/1.79.tar.gz?\
    ????|?tar?zx?-C?~/
    .vim/pack/foobar/opt


    該命令創建了 ~/.vim/pack/foobar/opt/ctrlp.vim-1.79 文件夾,現在這個包可以使用了。我們再次回到vim中,為這個新包創建一個幫助標簽的索引:


    :helptags?~/.vim/pack/foobar/opt/ctrlp.vim-1.79/doc/.vim/pack/foobar/opt/ctrlp.vim-1.79/doc


    該命令會在包的doc目錄中創建了一個名叫”tags“的文件,這樣Vim的內部幫助系統就可以使用它的內容了。(或者你也可以在包加載之后運行一次:helptags ALL,該命令會處理runtimepath下的所有文檔。)

    在需要使用包時,只需加載它(Tab自動補齊也可以用于插件名,所以不需要輸入全名):


    :packadd?ctrlp.vim-1.79ctrlp.vim-1.79


    packadd會把包的根目錄放到runtimepath中,然后運行它的plugin和ftdetect腳本。在加載ctrlp之后,就可以按Ctrl-P來彈出模糊文件查找了。

    有些人喜歡將~/.vim目錄放到版本管理中,使用git submodules來管理每個包。而我喜歡簡單地將包從tarball中解壓,然后用自己的代碼庫來管理。如果你使用成熟的包,那么更新不會太頻繁,加上腳本本身也很小,不會把git歷史弄得太亂。


    備份和undo


    根據不同的用戶設置,Vim可以防止四種類型的丟失:

  • 編輯過程中(兩次保存之間)崩潰。Vim會定期將未保存的修改寫入交換文件來防止這種情況。

  • 使用兩個Vim進程編輯同一個文件,兩個進程互相覆蓋。交換文件也可以防止這種情況。

  • 保存過程中崩潰,即在目標文件已被截斷,新的內容尚未完全寫入時崩潰。Vim可以通過“writebackup”來防止這種情況。為了實現該功能,Vim會首先將內容寫入新的文件,寫入成功后與原始文件交換。但這個功能取決于“backupcopy”設置。

  • 已保存新文件,但想要找回原文件。Vim可以通過在寫入改變后保留原始文件的備份來防止這種情況。

  • 在介紹具體的設置之前,先來放松一下吧!下面是GitHub上人們對于vimrc的一些評論:

    • “不要創建交換文件。用版本控制管理就好。”

    • “素人才用備份。高手都用版本控制。”

    • “用版本控制就好!”

    • “版本控制都滿天飛了,就不要再用交換文件和備份了。”

    • “不要寫備份文件,版本控制就是很好的備份?!?/span>

    • “我其實從來沒用過VIM的備份文件……一直都在用版本控制?!?/span>

    • “反正大部分東西都保存在版本控制里。”

    • “禁用備份文件,因為反正你也得用版本控制。”

    • “版本控制已來到,git拯救全世界。”

    • “禁用交換文件和備份(永遠使用版本控制!永遠!)”

    • “關掉備份,我所有東西都用版本控制?!?/span>

    上面的評論反映出,大家只了解上述第四種情況(偶爾也會提及第三種情況),這些人傾向于把交換文件也禁用,這會讓Vim無法防止第一種和第二種情況。

    為了保證編輯更安全,我建議使用下述配置:


    "?Protect?changes?between?writes.?Default?values?of"?updatecount?(200?keystrokes)?and?updatetime"?(4?seconds)?are?fineset?swapfileset?directory^=~/.vim/swap//"?protect?against?crash-during-writeset?writebackup"?but?do?not?persist?backup?after?successful?writeset?nobackup"?use?rename-and-write-new?method?whenever?safeset?backupcopy=auto"?patch?required?to?honor?double?slash?at?endif?has("patch-8.1.0251")????"?consolidate?the?writebackups?--?not?a?big????"?deal?either?way,?since?they?usually?get?deleted????set?backupdir^=~/.vim/backup//end"?persist?the?undo?tree?for?each?fileset?undofileset?undodir^=~/.vim/undo//
    "?(4?seconds)?are?fine
    set?swapfile
    set?directory^=~/.vim/swap//

    "?protect?against?crash-during-write
    set?writebackup
    "
    ?but?do?not?persist?backup?after?successful?write
    set?nobackup
    "?use?rename-and-write-new?method?whenever?safe
    set?backupcopy=auto
    "
    ?patch?required?to?honor?double?slash?at?end
    if?has("patch-8.1.0251")
    ????"?consolidate?the?writebackups?--?not?a?big
    ????"
    ?deal?either?way,?since?they?usually?get?deleted
    ????set?backupdir^=~/.vim/backup//
    end

    "?persist?the?undo?tree?for?each?file
    set?undofile
    set?undodir^=~/.vim/undo//


    這些設置為寫入過程啟用了備份,但在成功寫入后不會保留備份,因為我們有版本控制。注意你需要mkdir ~/.vim/{swap,undodir,backup},否則Vim會使用設置列表中的下一個可用的文件夾。你還應該chmod這些文件夾來保證隱私,因為交換文件和undo歷史可能包含敏感信息。

    關于配置中的路徑,需要提及的一點是,它們末尾使用了雙斜線。這樣可以無歧義地表示不同目錄下同名文件的交換文件和備份文件。例如,/foo/bar文件的交換文件會保存在~/.vim/swap/%foo%bar.swp(斜線z轉義成百分號)。Vim有一個bug,對于backupdir不會正確處理雙斜線寫法,該bug直到最近才修復,而上述配置可以防止這個bug。

    我們還要求Vim持久保存每個文件的undo文件,這樣在退出Vim并重新編輯文件時依然可以使用undo。雖然有了交換文件,這樣做有點多余,但實際上undo文件是補充性質的,因為它僅在原文件被寫入時才寫入。(如果undo文件寫入太頻繁,那么可能在崩潰后無法匹配磁盤上文件的狀態,所以Vim不這樣做。)

    說起undo就不得不提起Vim會維持編輯歷史的整個樹形結構。這意味著你可以做一個修改,undo之后,然后做另一個修改,這時所有三個狀態都可以被恢復。使用:undolist命令可以看到修改的時間和大小,但從該命令的結果很難想象整個樹形結構。你可以遍歷列表中的特定修改,也可以用:earlier和:later命令加上一個時間參數(如5m)或保存次數參數(如3f)在時間軸上移動。但是,遍歷undo樹最好使用插件——如undotree。

    啟用這些災難恢復設置可以讓你安心地使用Vim。我曾經在編輯過程中多次保存,或者每次離開電腦時也會保存,但現在我會幾個小時都不保存,因為我知道交換文件在老老實實地干活。

    最后幾點:要時刻關注這些災難恢復文件,時間長了它們可能會在.vim文件夾下越積越多,占用大量空間。另外,當磁盤剩余空間很少,卻需要保存大文件時,也許有必要設置nowritebackup,否則Vim必須臨時保存整個文件的副本。默認設置下“backupskip”設置能夠禁用系統臨時目錄下的任何文件的備份。

    Vim的“patchmode”與備份有關。你可以在沒有被版本控制管理的目錄下使用該設置。例如,如果你想下載源代碼tar包,做一些修改然后通過郵件列表提交補丁,這一過程中不使用git。只需運行:set patchmod=.orig,那么任何Vim寫入的文件“foo”就會備份成“foo.orig”。然后可以通過命令行比較.orig文件和新文件來創建補丁。


    包含和路徑


    絕大多數編程需要都允許你在一個文件中包含另一個模塊或文件。Vim通過path、include、suffixesadd和includeexpr配置項來了解如何跟蹤包含文件中的程序標識符。標識符搜索(參見:help include-search)是另一種使用ctags維持系統頭文件的標簽文件的方式。

    C程序的默認設置工作得很好。其他語言也同樣支持,但需要一些設置。這些設置超出了本文的范圍,可以參考:help include。

    如果一切配置正確,那么你可以在標識符上按 [i 來顯示標識符定義,或者在宏常量上按 [d 顯示宏定義。還有,在文件名上按 gf 可以搜索路徑并跳轉到相應的文件。由于路徑也會影響 :find 命令,一些人傾向于在路徑中添加“**/*”或常用的目錄,把 :find 命令當作簡裝版的模糊查找使用。但這樣做會減慢標識符搜索的速度,因為它需要搜索與標識符搜索無關的目錄。

    不污染路徑而實現相同查找功能的方式之一就是建立一個映射。這樣只需按<Leader><space>(通常這兩個鍵就是反斜杠然后空格)然后輸入文件名,再使用Tab或Ctrl-D自動完成來查找文件。


    "?fuzzy-find?litenmap?<Leader><space>?:e?./**/lite
    nmap?<Leader><space>?:e?./**/


    重申一下:路徑參數是為頭文件準備的。如果你想看更多證據,還可以用:checkpath命令顯示哪些路徑有效。加載一個C文件然后運行:checkpath,它就會顯示那些當前文件包含,卻找不到的文件名。帶感嘆號的 :checkpath! 可以顯示當前文件包含的整個頭文件層次結構。

    默認情況下,路徑的值為“.,/usr/include,,”,意思是當前目錄、/usr/include,然后是當前活動緩沖區的所有兄弟文件。目錄指定符和glob非常強大,詳情可以查看:help file-searching。

    我還在C ftplugin中(后文會多次提到它),讓路徑搜索包含了當前項目的包含文件,如./src/include或./include。


    setlocal?path=.,,*/include/**3,./*/include/**3setlocal?path+=/usr/includepath=.,,*/include/**3,./*/include/**3
    setlocal?path+=/usr/include


    帶數字的 ** (如**3)指定子目錄搜索的深度。最好在這里指定深度,以免標識符搜索鎖死。

    如果 :checkpath 指示出項目中找不到的文件,那么也可以考慮將下面這些模式添加到路徑中。當然,這完全取決于你的系統。

    • 更多的系統包含文件:/usr/include/**4,/usr/local/include/**3

    • Homebrew庫的頭文件:/usr/local/Cellar/**2/include/**2

    • Macports庫的頭文件:/opt/local/include/**

    • OpenBSD庫的頭文件:/usr/local/lib/\*/include,/usr/X11R6/include/\*\*3

    另請參考::he [,:he gf,:he :find。


    編輯-編譯循環


    :make 命令會執行用戶選擇的程序來構建項目,然后將輸出收集到quickfix緩沖區中。quickfix記錄中的每一項都記錄了文件名、行號、列號、類型(警告或錯誤)和消息。一種常見的使用方括號命令的映射方式如下,可以在quickfix項目中快速移動:


    "?quickfix?shortcutsnmap?]q?:cnext<cr>nmap?]Q?:clast<cr>nmap?[q?:cprev<cr>nmap?[Q?:cfirst<cr><cr>
    nmap?]Q?:clast<cr>
    nmap?[q?:cprev<cr>
    nmap?[Q?:cfirst<cr>


    如果在更新程序并重新編譯后,你想知道上次的消息,可以使用 :colder 命令(使用 :cnewer 返回)。如果需要查看有關當前錯誤的更多信息,可以使用 :cc ,然后用 :copen 命令查看完整的quickfix緩沖區。還可以使用 :cile、:caddfile 或 :cexpr 命令,無需運行:make而自行填充quickfix緩沖區。

    Vim能夠利用指定的errorformat字符串解析編譯的輸出。errorformat是個類似scanf的轉義序列。例如,Vim的gcc設置($VIMRUNTIME/compiler/gcc.vim)中自帶了errorformat設置,但卻沒有包含clang編譯器的設置。于是我創建了下面的定義:


    "?formatting?variations?documented?at"?https://clang.llvm.org/docs/UsersManual.html#formatting-of-diagnostics""?It?should?be?possible?to?make?this?work?for?the?combination?of"?-fno-show-column?and?-fcaret-diagnostics?as?well?with?multiline"?and?%p,?but?I?was?too?lazy?to?figure?it?out.""?The?%D?and?%X?patterns?are?not?clang?per?se.?They?capture?the"?directory?change?messages?from?(GNU)?'make?-w'.?I?needed?this"?for?building?a?project?which?used?recursive?Makefiles.CompilerSet?errorformat=????\%f:%l%c:{%*[^}]}{%*[^}]}:\?%trror:\?%m,????\%f:%l%c:{%*[^}]}{%*[^}]}:\?%tarning:\?%m,????\%f:%l:%c:\?%trror:\?%m,????\%f:%l:%c:\?%tarning:\?%m,????\%f(%l,%c)\?:\?%trror:\?%m,????\%f(%l,%c)\?:\?%tarning:\?%m,????\%f\?+%l%c:\?%trror:\?%m,????\%f\?+%l%c:\?%tarning:\?%m,????\%f:%l:\?%trror:\?%m,????\%f:%l:\?%tarning:\?%m,????\%D%*\\a[%*\\d]:\?Entering\?directory\?%*[`']%f',????\%D%*\\a:\?Entering\?directory\?%*[`']%f',????\%X%*\\a[%*\\d]:\?Leaving\?directory\?%*[`']%f',????\%X%*\\a:\?Leaving\?directory\?%*[`']%f',????\%DMaking\?%*\\a\?in\?%fCompilerSet?makeprg=make//clang.llvm.org/docs/UsersManual.html#formatting-of-diagnostics
    "
    "
    ?It?should?be?possible?to?make?this?work?for?the?combination?of
    "?-fno-show-column?and?-fcaret-diagnostics?as?well?with?multiline
    "
    ?and?%p,?but?I?was?too?lazy?to?figure?it?out.
    "
    "
    ?The?%D?and?%X?patterns?are?not?clang?per?se.?They?capture?the
    "?directory?change?messages?from?(GNU)?'make?-w'.?I?needed?this
    "
    ?for?building?a?project?which?used?recursive?Makefiles.

    CompilerSet?errorformat=
    ????\%f:%l%c:{%*[^}]}{%*[^}]}:\?%trror:\?%m,
    ????\%f:%l%c:{%*[^}]}{%*[^}]}:\?%tarning:\?%m,
    ????\%f:%l:%c:\?%trror:\?%m,
    ????\%f:%l:%c:\?%tarning:\?%m,
    ????\%f(%l,%c)\?:\?%trror:\?%m,
    ????\%f(%l,%c)\?:\?%tarning:\?%m,
    ????\%f\?+%l%c:\?%trror:\?%m,
    ????\%f\?+%l%c:\?%tarning:\?%m,
    ????\%f:%l:\?%trror:\?%m,
    ????\%f:%l:\?%tarning:\?%m,
    ????\%D%*\\a[%*\\d]:\?Entering\?directory\?%*[`']%f',
    ????\%D%*\\a:\?Entering\?directory\?%*[`
    ']%f',
    ????\%X%*\\a[%*\\d]:\?Leaving\?directory\?%*[`']%f',
    ????\%X%*\\a:\?Leaving\?directory\?%*[`
    ']%f',
    ????\%DMaking\?%*\\a\?in\?%f

    CompilerSet?makeprg=make


    要激活該編譯器設置,只需運行 :compiler clang。通常該命令在ftplugin文件中執行。

    另一個例子是在文本文件上運行GNU Diction來識別句子中用錯的詞匯和短語。可以創建一個“編譯器”,名為diction.vim:


    CompilerSet?errorformat=%f:%l:\?%mCompilerSet?makeprg=diction\?-s\?%s\?%


    運行 :compiler diction 之后,可以使用 :make 命令來運行,并填充quickfix。最后,我在.vimrc中添加了一個映射來運行make:


    "?real?makemap?<silent>?<F5>?:make<cr><cr><cr>"?GNUism,?for?building?recursivelymap?<silent>?<s-F5>?:make?-w<cr><cr><cr><silent>?<F5>?:make<cr><cr><cr>
    "?GNUism,?for?building?recursively
    map?<silent>?<s-F5>?:make?-w<cr><cr><cr>



    差異文件和補丁


    Vim自帶的比較工具非常強大,但可能有點難用,特別是三方合并視圖。但實際上花點時間學習你就會發現其實挺好用的。要點就是,每個窗口都可以處于或不處于“diff mode”。所有處于diffmode的窗口(用:difft[his]設置)會與所有其他已經處于diffmode的窗口進行比較。

    我們從一個簡單的例子開始。首先創建兩個文件:


    echo?"hello,?world"?>?h1echo?"goodbye,?world"?>?h2vim?h1?h2"hello,?world"?>?h1
    echo?"goodbye,?world"?>?h2

    vim?h1?h2


    在vim中運行 :all 命令,將上述參數指定的文件分別放入各自的窗口中。在上方的h1的窗口中運行 :difft。你會看到出現了一個分割線,但沒有檢測到任何差異。用Ctrl-W Ctrl-W移動到下方窗口,然后運行 :difft。這時就會檢測出hello和goodbye之間的差異。在下方窗口中執行 :diffg[et] 可以從上方窗口中拉取“hello”,或者使用 :diffp[ut] 將“goodbye”發送到上方窗口。如果有多個差異塊,那么按 ]c 或 [c 可以在不同的差異塊中移動。

    快捷方式之一就是運行 vim -d h1 h2 (或者運行其別名 vimdiff h1 h2),該命令會對所有窗口執行 :difft。此外,還可以先用vim h1僅加載h1,然后執行 :diffsplit h2。記住,所有這些命令實際上都是將文件加載到窗口中并設置diffmode而已。

    了解這些基本知識后,我們來學習怎樣把Vim作為git的三方合并工具使用。首先配置git:


    git?config?merge.tool?vimdiffgit?config?merge.conflictstyle?diff3git?config?mergetool.prompt?false
    git?config?merge.conflictstyle?diff3
    git?config?mergetool.prompt?false


    現在,當遇到合并沖突時,只需運行git mergetool。該命令會啟動Vim并打開四個窗口。這部分看上去很嚇人,我經常會舉棋不定。


    +-----------+------------+------------+|???????????|????????????|????????????||???????????|????????????|????????????||???LOCAL???|????BASE????|???REMOTE???|+-----------+------------+------------+|?????????????????????????????????????||?????????????????????????????????????||?????????????(edit?me)???????????????|+-------------------------------------+|???????????|????????????|????????????|
    |???????????|????????????|????????????|
    |???LOCAL???|????BASE????|???REMOTE???|
    +-----------+------------+------------+
    |?????????????????????????????????????|
    |?????????????????????????????????????|
    |?????????????(edit?me)???????????????|
    +-------------------------------------+


    關鍵在于所有編輯都應該在下方窗口中進行。上方的三個窗口僅用于提供文件差異(local和remote)的上下文,以及每一方在修改之前的樣子(base)。

    使用 ]c 命令在下方窗口中移動,針對每個差異塊,可以選擇local、base或remote之一來替換,或者可以自己修改,合并多方的內容。

    為了能夠更容易地從上方窗口拉取修改,我在vimrc里設置了一些映射:


    "?shortcuts?for?3-way?mergemap?<Leader>1?:diffget?LOCAL<CR>map?<Leader>2?:diffget?BASE<CR>map?<Leader>3?:diffget?REMOTE<CR><Leader>1?:diffget?LOCAL<CR>
    map?<Leader>2?:diffget?BASE<CR>
    map?<Leader>3?:diffget?REMOTE<CR>


    我們已經介紹過了 :diffget,上述綁定會為其傳遞一個參數,即用來識別拉取源的緩沖區名。

    合并結束后,執行 :wqa 保存所有窗口并退出。如果你想放棄合并,可以運行 :cq 放棄所有修改,給shell返回一個錯誤代碼。該錯誤代碼會告訴git應當忽略這些修改。

    diffget還可以接受范圍。如果想從某個上方窗口拉取所有差異塊,而不想逐個拉取,可以執行 :1,$+1diffget {LOCAL,BASE,REMOTE} ?!?#43;1”是必要的,因為緩沖區的最后一行的“下方”可能存在被刪除的行。

    畢竟,三方合并其實很簡單。至少,不需要用Fugitive之類的插件在合并沖突時顯示差異。

    最后,8.1.0360版本中包含了xdiff庫,可以直接創建diff文件。這比使用外部程序更有效率,而且可以采用多種diff算法。“patience”算法通??梢陨杀饶J設置更容易閱讀的輸出。在.vimrc中這樣設置:


    if?has("patch-8.1.0360")????set?diffopt+=internal,algorithm:patienceendifinternal,algorithm:patience
    endif


    緩沖區I/O?


    看看這是不是很熟悉?你編輯了一個緩沖區,想把它保存成新文件,所以執行了:w newname。再次進行一些編輯后,執行 :w ,但卻保存到了原始文件上。在這種情況下,你真正需要的是 :saveas newname,即寫入新文件,并將緩沖區的文件名改為新文件,方便以后的寫入。此外,:file newname命令可以改變緩沖區文件名,而不會執行實際的寫入。

    學習更多有關讀寫命令的知識也很有用。因為r和w都是ex的命令,所以它們都可以接受范圍。下面是一些你不太熟知的使用方法:

    • :w >> foo

      將整個緩沖區追加到文件中

    • :.w >> foo

      將當前行追加到文件中

    • :$r foo

      讀取foo并插入到緩沖區末尾

    • :0r foo

      讀取foo并插入到開頭,已有行向下移動

    • :.,$w foo

      將當前行以及之后的所有行寫入文件

    • :r !ls

      讀取ls輸出到當前光標位置

    • :w !wc

      將緩沖區發送到wc命令然后顯示結果

    • :.!tr 'A-Za-z' 'N-ZA-Mn-za-m'

      為當前行執行ROT-13

    • :w | so %

      連鎖命令:寫入并執行緩沖區

    • :e!

      放棄為保存到修改,重新加載緩沖區

    • :hide edit foo

      編輯foo,如果當前緩沖區被修改過,則隱藏

    冷知識:上面的例子中使用一整行來調用 tr 以實現ROT-13加密,但實際上Vim內置了該功能,即 g? 命令。可以將其應用到移動操作,如 g?$。


    filetypes


    filetypes設置可以根據緩沖區中檢測到到文件類型來改變設置。不過它們并不一定非要自動檢測,我們可以手動啟用它們,實現一些有趣的效果。一個例子就是十六進制編輯。任何文件都可以作為十六進制值查看。GitHub用戶the9ball寫了一個非常聰明的ftplugin腳本,可以將緩沖區傳遞給xxd或傳回,實現十六進制編輯。

    為了方便使用,Vim 5版本捆綁了xxd工具。Vim的todo.txt提到,他們想讓二進制文件編輯功能更加順暢,但xxd已經實現了不少功能。?

    將下面的代碼放到 ~/.vim/ftplugin/xxd.vim 中。保存到ftplugin中的意思是,每當filetype(即“ft”)變成xxd時,Vim就會執行該腳本。我在腳本中添加了一些簡單的注釋:


    "?without?the?xxd?command?this?is?all?pointlessif?!executable('xxd')????finishendif"?don't?insert?a?newline?in?the?final?line?if?it"?doesn't?already?exist,?and?don't?insert?linebreakssetlocal?binary?noendoflinesilent?%!xxd?-g?1%s/\r$//e"?put?the?autocmds?into?a?group?for?easy?removal?lateraugroup?ftplugin-xxd????"?erase?any?existing?autocmds?on?buffer????autocmd!?*?<buffer>????"?before?writing,?translate?back?to?binary????autocmd?BufWritePre?<buffer>?let?b:xxd_cursor?=?getpos('.')????autocmd?BufWritePre?<buffer>?silent?%!xxd?-r????"?after?writing,?restore?hex?view?and?mark?unmodified????autocmd?BufWritePost?<buffer>?silent?%!xxd?-g?1????autocmd?BufWritePost?<buffer>?%s/\r$//e????autocmd?BufWritePost?<buffer>?setlocal?nomodified????autocmd?BufWritePost?<buffer>?call?setpos('.',?b:xxd_cursor)?|?unlet?b:xxd_cursor????"?update?text?column?after?changing?hex?values????autocmd?TextChanged,InsertLeave?<buffer>?let?b:xxd_cursor?=?getpos('.')????autocmd?TextChanged,InsertLeave?<buffer>?silent?%!xxd?-r????autocmd?TextChanged,InsertLeave?<buffer>?silent?%!xxd?-g?1????autocmd?TextChanged,InsertLeave?<buffer>?call?setpos('.',?b:xxd_cursor)?|?unlet?b:xxd_cursoraugroup?END"?when?filetype?is?set?to?no?longer?be?"xxd,"?put?the?binary"?and?endofline?settings?back?to?what?they?were?before,?remove"?the?autocmds,?and?replace?buffer?with?its?binary?valuelet?b:undo_ftplugin?=?'setl?bin<?eol<?|?execute?"au!?ftplugin-xxd?*?<buffer>"?|?execute?"silent?%!xxd?-r"'
    ????finish
    endif

    "?don't?insert?a?newline?in?the?final?line?if?it
    "?doesn't?already?exist,?and?don't?insert?linebreaks
    setlocal?binary?noendofline
    silent?%!xxd?-g?1
    %s/\r$//e

    "
    ?put?the?autocmds?into?a?group?for?easy?removal?later
    augroup?ftplugin-xxd
    ????"?erase?any?existing?autocmds?on?buffer
    ????autocmd!?*?<buffer>

    ????"
    ?before?writing,?translate?back?to?binary
    ????autocmd?BufWritePre?<buffer>?let?b:xxd_cursor?=?getpos('.')
    ????autocmd?BufWritePre?<buffer>?silent?%!xxd?-r

    ????"?after?writing,?restore?hex?view?and?mark?unmodified
    ????autocmd?BufWritePost?<buffer>?silent?%!xxd?-g?1
    ????autocmd?BufWritePost?<buffer>?%s/\r$//e
    ????autocmd?BufWritePost?<buffer>?setlocal?nomodified
    ????autocmd?BufWritePost?<buffer>?call?setpos('.',?b:xxd_cursor)?|?unlet?b:xxd_cursor

    ????"
    ?update?text?column?after?changing?hex?values
    ????autocmd?TextChanged,InsertLeave?<buffer>?let?b:xxd_cursor?=?getpos('.')
    ????autocmd?TextChanged,InsertLeave?<buffer>?silent?%!xxd?-r
    ????autocmd?TextChanged,InsertLeave?<buffer>?silent?%!xxd?-g?1
    ????autocmd?TextChanged,InsertLeave?<buffer>?call?setpos('.',?b:xxd_cursor)?|?unlet?b:xxd_cursor
    augroup?END

    "?when?filetype?is?set?to?no?longer?be?"xxd,"?put?the?binary
    "
    ?and?endofline?settings?back?to?what?they?were?before,?remove
    "?the?autocmds,?and?replace?buffer?with?its?binary?value
    let?b:undo_ftplugin?=?'setl?bin<?eol<?|?execute?"
    au!?ftplugin-xxd?*?<buffer>"?|?execute?"silent?%!xxd?-r"'


    打開一個文件,然后執行 :set ft。記下文件類型。然后執行 :set ft=xxd。Vim就會變成一個十六進制編輯器。要恢復原來的視圖,只需 :set fo=foo,其中foo是原始的文件類型。注意十六進制視圖甚至還有語法高亮,因為Vim默認自帶了 $VIMRUNTIME/syntax/xxd.vim 。

    注意這里的“b:undo_ftplugin”非常巧妙,它可以在用戶或ftdetect機制將文件類型切換成其他filetype時,讓filetypes執行一些清理工作。(上面的例子還可以改進一下,因為如果你 :set ft=xxd 然后直接改回去,那么緩沖區會被標記為已修改,即使你沒有進行任何修改。)

    ftplugins還可以進一步定義已知的filetype。例如,Vim已經在 $VIMRUNTIME/ftplugin/c.vim 中為C語言包含了非常好的默認設置。我在 ~/.vim/after/ftplugin/c.vim 中添加了額外的選項:


    "?the?smartest?indent?engine?for?Csetlocal?cindent"?my?preferred?"Allman"?style?indentationsetlocal?cino="Ls,:0,l1,t0,(s,U1,W4""?for?quickfix?errorformatcompiler?clang"?shows?long?build?messages?bettersetlocal?ch=2"?auto-create?folds?per?grammarsetlocal?foldmethod=syntaxsetlocal?foldlevel=10"?local?project?headerssetlocal?path=.,,*/include/**3,./*/include/**3"?basic?system?headerssetlocal?path+=/usr/includesetlocal?tags=./tags,tags;~"??????????????????????^?in?working?dir,?or?parents"????????????????^?sibling?of?open?file"?the?default?is?menu,preview?but?the?preview?window?is?annoyingsetlocal?completeopt=menuiabbrev?#i?#includeiabbrev?#d?#defineiabbrev?main()?int?main(int?argc,?char?**argv)"?add?#include?guardiabbrev?#g?_<c-r>=expand("%:t:r")<cr><esc>VgUV:s/[^A-Z]/_/g<cr>A_H<esc>yypki#ifndef?<esc>j0i#define?<esc>o<cr><cr>#endif<esc>2ki"Allman"?style?indentation
    setlocal?cino="Ls,:0,l1,t0,(s,U1,W4"

    "?for?quickfix?errorformat
    compiler?clang
    "
    ?shows?long?build?messages?better
    setlocal?ch=2

    "?auto-create?folds?per?grammar
    setlocal?foldmethod=syntax
    setlocal?foldlevel=10

    "
    ?local?project?headers
    setlocal?path=.,,*/include/**3,./*/include/**3
    "?basic?system?headers
    setlocal?path+=/usr/include

    setlocal?tags=./tags,tags;~
    "
    ??????????????????????^?in?working?dir,?or?parents
    "????????????????^?sibling?of?open?file

    "
    ?the?default?is?menu,preview?but?the?preview?window?is?annoying
    setlocal?completeopt=menu

    iabbrev?#i?#include
    iabbrev?#d?#define
    iabbrev?main()?int?main(int?argc,?char?**argv)

    "?add?#include?guard
    iabbrev?#g?_<c-r>=expand("
    %:t:r")<cr><esc>VgUV:s/[^A-Z]/_/g<cr>A_H<esc>yypki#ifndef?<esc>j0i#define?<esc>o<cr><cr>#endif<esc>2ki


    注意上述腳本使用了“setlocal”而不是“set”。它僅對當前緩沖區生效,而不是對整個Vim進程生效。

    該腳本還添加了一些縮寫。例如,我可以輸入 #g 并按回撤,就能自動使用當前文件名添加包含檢測:


    #ifndef?_FILENAME_H#define?_FILENAME_H/*?<--?cursor?here?*/#endif
    #define?_FILENAME_H

    /*?<--?cursor?here?*/

    #endif


    你還可以使用點(“.”)來混合多種filetypes。下面是應用的例子。不同的項目有不同的編碼規范,所以你可以將默認的C設置與特定項目的設置結合起來。OpenBSD的源代碼遵循style(9)格式(https://man.openbsd.org/style.9),所以我們來做一個特殊的openbsd filetype。可以在相關文件上使用 :set ft=c.openbsd 將兩個filetype合并。

    要檢測openbsd filetype,可以查看緩沖區的內容,而不僅僅是通過文件擴展名或文件在磁盤上的位置。C文件中包含OpenBSD源代碼的標志就是第一行出現 /* $OpenBSD: 。

    創建 ~/.vim/after/ftdetect/openbsd.vim 進行檢測:


    augroup?filetypedetect????????au?BufRead,BufNewFile?*.[ch]????????????????\??if?getline(1)?=~?'OpenBSD;'????????????????\|???setl?ft=c.openbsd????????????????\|?endifaugroup?END
    ????????????????\??if?getline(1)?=~?'OpenBSD;'
    ????????????????\|???setl?ft=c.openbsd
    ????????????????\|
    ?endif
    augroup?END


    OpenBSD的Vim移植已經包含了該filetype的特殊語法:/usr/local/share/vim/vimfiles/syntax/openbsd.vim?;貞浺幌?#xff0c;/usr/local/share/vim/vimfiles目錄位于runtimepath中,用于保存系統管理員提供的文件。該openbsd.vim腳本包含下面的函數:


    function!?OpenBSD_Style()????setlocal?cindent????setlocal?cinoptions=(4200,u4200,+0.5s,*500,:0,t0,U4200????setlocal?indentexpr=IgnoreParenIndent()????setlocal?indentkeys=0{,0},0),:,0#,!^F,o,O,e????setlocal?noexpandtab????setlocal?shiftwidth=8????setlocal?tabstop=8????setlocal?textwidth=80endfun
    ????setlocal?cindent
    ????setlocal?cinoptions=(4200,u4200,+0.5s,*500,:0,t0,U4200
    ????setlocal?indentexpr=IgnoreParenIndent()
    ????setlocal?indentkeys=0{,0},0),:,0#,!^F,o,O,e
    ????setlocal?noexpandtab
    ????setlocal?shiftwidth=8
    ????setlocal?tabstop=8
    ????setlocal?textwidth=80
    endfun


    我們只需在適當時候調用該函數。創建 ~/.vim/after/ftplugin/openbsd.vim:


    call?OpenBSD_Style()


    現在打開任何頂部具有標志性注釋的C文件或頭文件,就會被識別為c.openbsd類型,從而采用style(9)手冊頁中規定的縮進選項。


    別忘了鼠標


    在此友好地提醒你,盡管我們都喜歡命令行,但實際上Vim也支持鼠標,而且有些任務比鍵盤更方便。由于xterm能夠將鼠標事件轉換為stdin轉義代碼,所以我們甚至可以通過SSH都能支持鼠標事件。

    如果想啟用鼠標支持,則需要設置 mouse=n。許多人喜歡設置 mouse=a,因為這樣就可以在所有模式下工作,但我更喜歡只在普通模式下啟用鼠標支持。這樣,在我用鍵盤加點擊的方式在瀏覽器中打開鏈接時,就不會錯誤地創建可視選擇區域。

    以下是鼠標可以執行的操作:

    • 打開或關閉折疊(當foldcolumn> 0時)。

    • 選擇標簽(比 gt gt gt gt ...要好用得多)

    • 單擊完成動作,例如 d<點擊>。類似于easymotion插件,但不需要任何插件。

    • 雙擊即可跳轉到幫助主題。

    • 拖動底部的狀態行以更改cmdheight。

    • 拖動窗口邊緣以調整大小。

    • 鼠標滾輪。


    其他編輯功能


    這部分涉及的內容很雜,但我僅在此介紹一些我學到的技巧。第一個讓我感到震驚的是::set virtualedit=all。它允許你將光標移動到窗口中的任何位置。如果你輸入字符或插入可視塊,Vim會在插入的字符的左側添加所需的空格以保證它們的位置。虛擬編輯模式可以簡化表格數據的編輯。你可以通過 :set virtualedit= 來關閉這個選項。

    接下來是一些移動命令。在跳轉到下一段時,我習慣于使用 } ,每次跳轉一個段落。然而, ] 字符可以完成更精準的跳轉:跳轉到下一個函數 ]]、作用域 ]}、圓括號 ‘])’、注釋 ]/、差異塊 ]c。前面提到的 quickfix 映射 ]q 也是這種操作方式之一。

    對于大段的跳轉,我曾經嘗試過 1000j 等操作,但實際上只需在普通模式下鍵入百分比,Vim就會跳轉到相應的位置,比如50%。說到滾動百分比,你隨時可以使用CTRL-G查看它。所以現在我采用了 :set noruler 的設置,只在需要了解百分比的時候查看,這樣畫面就不會過于雜亂了。這似乎與色彩斑斕的powerlines的流行趨勢有點背道而馳。

    如果想在標簽、文件或文件中跳轉,那么有些命令可以幫助你。比如::ls、:tags、:jumps 和 :marks。在標簽之間跳轉實際上會創建一個棧,你可以按CTRL-T跳到前一個。以前我經常按CTRL-O退出跳轉,但是它不如彈出標簽棧那般直接。

    在使用ctags編制索引的項目目錄中,你可以使用 -t 選項在打開編輯器時直接跳到標簽,比如:vim -t main。如果想更靈活地查找標簽文件,那么可以設置 tags 配置變量。請注意如下示例中的分號,有了它Vim就可以從當前目錄向上搜索到主目錄。如此一來,你就可以在項目文件夾外部使用更通用的系統標記文件。


    set?tags=./tags,**5/tags,tags;~"??????????????????????????^?in?working?dir,?or?parents"???????????????????^?in?any?subfolder?of?working?dir"???????????^?sibling?of?open?file
    "??????????????????????????^?in?working?dir,?or?parents
    "
    ???????????????????^?in?any?subfolder?of?working?dir
    "???????????^?sibling?of?open?file


    此外,還有一些緩沖區技巧。切換緩沖區的命令 :bu 可以接受緩沖區名稱的片段作為參數,而不僅僅是數字。有時很難記住這些數字,相比之下源文件的名稱更加方便記憶。你也可以使用標記來瀏覽緩沖區。如果使用大寫字母作為標記的名稱,則可以跨緩沖區跳轉到該標記。你還可以在標題中設置標記H,在源文件中設置C,在Makefile中設置M,這樣就可以在緩沖區之間來回跳轉了。

    你有沒有遇到過這種情況:復制一個單詞,然后在其他地方刪掉一個單詞,當嘗試粘貼第一個單詞時,卻發現原來復制的單詞已被覆蓋。是不是很氣惱?Vim寄存器不善于處理這種情況。你可以用 :reg 檢查其內容。當你復制文本時,先前的復制就會被輪換到寄存器"0 - "9。因此,"0p 會粘貼倒數第二個復制/刪除。特殊寄存器 "+ 和 "* 可以從系統剪貼板中復制/粘貼,也可以復制/粘貼到系統剪貼板。通常,這兩者的含義相同,除了在一些X11設置中會區分首選和備選。

    另一個非常方便的隱藏功能是命令行窗口。它是一個緩沖區,其中包含了你以前運行的命令和搜索。你可以通過 q: 或 q/ 顯示該窗口。在進入該緩沖區后,你可以隨意移動到任何一行,然后按Enter鍵運行該行的命令。然而,你也可以在按Enter鍵之前對行進行編輯。你的更改不會影響該行(僅會將新的命令將添加到列表的底部)。

    vim的使用技巧繁多,文本無法詳盡闡述。如果你想了解更多信息,請參閱幫助文檔:views-sessions、viminfo、TOhtml、ins-completion、cmdline-completion、multi-repeat、scroll-cursor、text-objects、grep、netrw-contents。

    原文:https://begriffs.com/posts/2019-07-19-history-use-vim.html

    本文為 CSDN 翻譯,轉載請注明來源出處。

    (*本文為 AI科技大本營轉載文章,轉載請聯系原作者)


    社群福利

    掃碼添加小助手,回復:大會,加入2019 AI開發者大會福利群,每周一、三、五更新技術福利,還有不定期的抽獎活動~


    精彩推薦




    60+技術大咖與你相約 2019 AI ProCon!大會早鳥票已售罄,優惠票速搶進行中......2019 AI開發者大會將于9月6日-7日在北京舉行,這一屆AI開發者大會有哪些亮點?一線公司的大牛們都在關注什么?AI行業的風向是什么?2019 AI開發者大會,傾聽大牛分享,聚焦技術實踐,和萬千開發者共成長。


    推薦閱讀

    • 自動駕駛激蕩風云錄:來自圈內人的冷眼解讀

    • 不止最佳長論文,騰訊AI在ACL上還有這些NLP成果

    • 認知智能的突圍:NLP、知識圖譜是AI下一個“掘金地”?

    • 5G+AI重新定義生老病死

    • 干貨 | 20個Python教程,掌握時間序列的特征分析(附代碼)

    • 2019 年度程序員吸金榜:你排第幾?

    • 字節跳動入局全網搜索;思科回應中國區裁員;IntelliJ IDEA 新版發布!?| 極客頭條

    • 知名飲料制造商股價暴漲500%驚動FBI,只因在名字中加入了"區塊鏈" ?


    你點的每個“在看”,我都認真當成了喜歡


    總結

    以上是生活随笔為你收集整理的Vim激荡30年发展史的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲国产精品毛片av不卡在线 | 日韩 欧美 动漫 国产 制服 | 97久久国产亚洲精品超碰热 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产亚洲精品久久久闺蜜 | 亚洲日韩精品欧美一区二区 | 国产激情无码一区二区 | 国产国语老龄妇女a片 | 国产精品18久久久久久麻辣 | 国产精品永久免费视频 | 97久久精品无码一区二区 | 亚洲国产高清在线观看视频 | 麻豆国产丝袜白领秘书在线观看 | 国产午夜福利100集发布 | 99riav国产精品视频 | 亚洲男人av天堂午夜在 | 国产97在线 | 亚洲 | 人妻互换免费中文字幕 | 成熟妇人a片免费看网站 | 中文精品无码中文字幕无码专区 | 四十如虎的丰满熟妇啪啪 | 国产香蕉尹人综合在线观看 | 啦啦啦www在线观看免费视频 | 午夜男女很黄的视频 | 精品乱子伦一区二区三区 | 日本护士xxxxhd少妇 | 日本精品人妻无码免费大全 | 成人无码精品1区2区3区免费看 | 国产成人一区二区三区别 | 亚洲区欧美区综合区自拍区 | 成人精品视频一区二区三区尤物 | 亚洲一区二区观看播放 | 99久久久无码国产精品免费 | 国产精品久久久久久久9999 | 亚洲高清偷拍一区二区三区 | 国产成人精品久久亚洲高清不卡 | 大肉大捧一进一出视频出来呀 | 玩弄人妻少妇500系列视频 | 中文字幕无码免费久久9一区9 | 日韩人妻无码一区二区三区久久99 | 国产亚洲精品久久久久久久 | 亚洲综合久久一区二区 | 又紧又大又爽精品一区二区 | 国产黄在线观看免费观看不卡 | 色 综合 欧美 亚洲 国产 | 国产人妻精品一区二区三区不卡 | 国产成人久久精品流白浆 | 欧美日韩一区二区免费视频 | 久久无码人妻影院 | 亚洲自偷自拍另类第1页 | 激情人妻另类人妻伦 | 国产内射爽爽大片视频社区在线 | 无套内射视频囯产 | 国产精品久久久久久久9999 | 国产人妻精品一区二区三区 | 精品久久8x国产免费观看 | 国内少妇偷人精品视频免费 | 国产精品18久久久久久麻辣 | 欧美色就是色 | 老子影院午夜精品无码 | 成人精品天堂一区二区三区 | 亚洲精品无码人妻无码 | 日产精品高潮呻吟av久久 | 欧美三级不卡在线观看 | 精品一区二区三区无码免费视频 | 天天躁夜夜躁狠狠是什么心态 | 午夜精品久久久内射近拍高清 | 天下第一社区视频www日本 | 成人性做爰aaa片免费看 | 激情综合激情五月俺也去 | 亚洲日韩av一区二区三区中文 | 国产真实乱对白精彩久久 | 丰满妇女强制高潮18xxxx | 亚洲乱码日产精品bd | 水蜜桃亚洲一二三四在线 | 老熟女重囗味hdxx69 | 六十路熟妇乱子伦 | 欧美性生交活xxxxxdddd | 国产精品a成v人在线播放 | 人妻少妇被猛烈进入中文字幕 | 中文字幕无码av波多野吉衣 | 黄网在线观看免费网站 | 精品乱码久久久久久久 | 久久久精品人妻久久影视 | 亚洲一区二区三区在线观看网站 | 麻豆国产人妻欲求不满 | 国产精品18久久久久久麻辣 | 亚洲色无码一区二区三区 | 亚洲欧洲中文日韩av乱码 | 欧美变态另类xxxx | 久久99久久99精品中文字幕 | 粉嫩少妇内射浓精videos | 色情久久久av熟女人妻网站 | 欧美 亚洲 国产 另类 | 日日摸日日碰夜夜爽av | 国产精品人人妻人人爽 | 亚洲欧美精品aaaaaa片 | 99久久亚洲精品无码毛片 | 99久久婷婷国产综合精品青草免费 | 国产人妻人伦精品1国产丝袜 | 国产九九九九九九九a片 | 曰韩无码二三区中文字幕 | 人人澡人人透人人爽 | 欧美老熟妇乱xxxxx | 伊人久久大香线焦av综合影院 | 无码人妻久久一区二区三区不卡 | 久久精品国产99精品亚洲 | 一本无码人妻在中文字幕免费 | 成人精品天堂一区二区三区 | 色一情一乱一伦一视频免费看 | 宝宝好涨水快流出来免费视频 | 18禁黄网站男男禁片免费观看 | 欧美野外疯狂做受xxxx高潮 | 伊人久久大香线蕉av一区二区 | 99久久婷婷国产综合精品青草免费 | www国产亚洲精品久久久日本 | 麻豆果冻传媒2021精品传媒一区下载 | 久9re热视频这里只有精品 | 欧美日韩亚洲国产精品 | 18无码粉嫩小泬无套在线观看 | 成年女人永久免费看片 | 国产内射老熟女aaaa | 人妻无码αv中文字幕久久琪琪布 | 偷窥日本少妇撒尿chinese | 狠狠色欧美亚洲狠狠色www | 99久久精品无码一区二区毛片 | 99久久久无码国产精品免费 | 人妻少妇精品久久 | 人人爽人人爽人人片av亚洲 | 全球成人中文在线 | 国产精品久久国产精品99 | 国产精品免费大片 | 伊人色综合久久天天小片 | 亚洲中文字幕va福利 | 精品欧美一区二区三区久久久 | 狠狠色丁香久久婷婷综合五月 | 亚洲成在人网站无码天堂 | √天堂中文官网8在线 | 一本加勒比波多野结衣 | 国产av久久久久精东av | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲一区av无码专区在线观看 | 999久久久国产精品消防器材 | 久久人人爽人人爽人人片av高清 | 国产在线精品一区二区高清不卡 | 久久久久亚洲精品中文字幕 | 鲁鲁鲁爽爽爽在线视频观看 | 强辱丰满人妻hd中文字幕 | 国产精品国产三级国产专播 | 色狠狠av一区二区三区 | 国产精品人妻一区二区三区四 | 中文字幕无码热在线视频 | 激情爆乳一区二区三区 | 嫩b人妻精品一区二区三区 | 国产成人无码av一区二区 | 久久99国产综合精品 | 天天摸天天碰天天添 | 精品国偷自产在线视频 | 精品国产麻豆免费人成网站 | 国产成人综合在线女婷五月99播放 | 亚洲色偷偷男人的天堂 | 扒开双腿疯狂进出爽爽爽视频 | 国产成人无码av片在线观看不卡 | 国产精品18久久久久久麻辣 | 岛国片人妻三上悠亚 | 日本高清一区免费中文视频 | 国产成人无码av片在线观看不卡 | 撕开奶罩揉吮奶头视频 | 国产猛烈高潮尖叫视频免费 | 成年美女黄网站色大免费全看 | 少妇激情av一区二区 | 无码人妻久久一区二区三区不卡 | 国产乡下妇女做爰 | 欧美性黑人极品hd | 国产偷国产偷精品高清尤物 | 激情五月综合色婷婷一区二区 | 九九在线中文字幕无码 | 狠狠亚洲超碰狼人久久 | 亚洲日本一区二区三区在线 | 亚洲爆乳大丰满无码专区 | 亚洲精品国偷拍自产在线麻豆 | 97se亚洲精品一区 | 国产综合色产在线精品 | 国产激情艳情在线看视频 | 精品一区二区三区无码免费视频 | 色综合久久88色综合天天 | 国内精品人妻无码久久久影院 | 国产乱人无码伦av在线a | 天堂亚洲2017在线观看 | 黑人巨大精品欧美黑寡妇 | 中文字幕无码热在线视频 | 亚洲综合在线一区二区三区 | 欧美人妻一区二区三区 | 久久国语露脸国产精品电影 | 无码播放一区二区三区 | 国产超级va在线观看视频 | 一本久道久久综合婷婷五月 | 亚洲呦女专区 | 国产农村妇女高潮大叫 | 人妻少妇精品视频专区 | 国产成人精品久久亚洲高清不卡 | 最新国产乱人伦偷精品免费网站 | 色老头在线一区二区三区 | 国产情侣作爱视频免费观看 | 国产另类ts人妖一区二区 | 在线a亚洲视频播放在线观看 | 女人被爽到呻吟gif动态图视看 | 亚洲成熟女人毛毛耸耸多 | 国产精品久久久av久久久 | 国产九九九九九九九a片 | 国产欧美熟妇另类久久久 | 亚洲热妇无码av在线播放 | 亚洲色欲色欲天天天www | 人人妻人人藻人人爽欧美一区 | 国产精品成人av在线观看 | 国内少妇偷人精品视频 | 久久人人爽人人爽人人片av高清 | 国产乱人伦偷精品视频 | 精品久久综合1区2区3区激情 | 131美女爱做视频 | 少妇的肉体aa片免费 | 国产成人精品三级麻豆 | 美女扒开屁股让男人桶 | 精品午夜福利在线观看 | 真人与拘做受免费视频 | 人人爽人人爽人人片av亚洲 | 少妇厨房愉情理9仑片视频 | 人人妻人人澡人人爽欧美精品 | 亚洲精品中文字幕久久久久 | 免费无码av一区二区 | 欧美 丝袜 自拍 制服 另类 | 久久精品国产日本波多野结衣 | 一二三四社区在线中文视频 | 青草青草久热国产精品 | 无码毛片视频一区二区本码 | 国产福利视频一区二区 | 成年女人永久免费看片 | 内射老妇bbwx0c0ck | 好爽又高潮了毛片免费下载 | 97夜夜澡人人双人人人喊 | 国产97在线 | 亚洲 | 300部国产真实乱 | 亚洲精品国产精品乱码视色 | 欧美丰满老熟妇xxxxx性 | 国产精品无码一区二区桃花视频 | 色欲人妻aaaaaaa无码 | 中文字幕av伊人av无码av | 国产精品自产拍在线观看 | 国产绳艺sm调教室论坛 | 特大黑人娇小亚洲女 | 欧美人与物videos另类 | 久久国内精品自在自线 | 亚洲va中文字幕无码久久不卡 | 精品无码av一区二区三区 | 亚洲精品一区二区三区大桥未久 | 装睡被陌生人摸出水好爽 | 国产午夜福利亚洲第一 | 又大又硬又黄的免费视频 | 国产无套内射久久久国产 | 欧美精品在线观看 | 日韩少妇内射免费播放 | 久久国产精品二国产精品 | 亚洲欧洲日本无在线码 | 国产69精品久久久久app下载 | 国产麻豆精品一区二区三区v视界 | 欧美人妻一区二区三区 | 国产精品久久久久9999小说 | 天天燥日日燥 | 免费无码午夜福利片69 | 最新版天堂资源中文官网 | 国产精品久久久久久久9999 | 99国产精品白浆在线观看免费 | 麻豆精品国产精华精华液好用吗 | 久久久婷婷五月亚洲97号色 | 麻豆国产人妻欲求不满谁演的 | 无码人妻出轨黑人中文字幕 | 欧洲精品码一区二区三区免费看 | 欧美老妇交乱视频在线观看 | 久久伊人色av天堂九九小黄鸭 | 在线播放免费人成毛片乱码 | 亚洲中文字幕在线无码一区二区 | 欧美日本精品一区二区三区 | 伊人久久大香线蕉午夜 | 国产成人人人97超碰超爽8 | 日韩在线不卡免费视频一区 | 国产亚洲精品久久久ai换 | 午夜精品久久久久久久 | 国语自产偷拍精品视频偷 | 日韩av无码一区二区三区 | 伦伦影院午夜理论片 | 亚洲大尺度无码无码专区 | 久久熟妇人妻午夜寂寞影院 | 黑人玩弄人妻中文在线 | 思思久久99热只有频精品66 | 小泽玛莉亚一区二区视频在线 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产69精品久久久久app下载 | 老熟妇乱子伦牲交视频 | 精品偷自拍另类在线观看 | 久久综合香蕉国产蜜臀av | 日日天日日夜日日摸 | 日韩成人一区二区三区在线观看 | 麻豆蜜桃av蜜臀av色欲av | 欧美午夜特黄aaaaaa片 | 人妻少妇精品无码专区动漫 | 久久久国产精品无码免费专区 | 国产乱人伦av在线无码 | 中文字幕无码免费久久9一区9 | 麻豆国产人妻欲求不满谁演的 | 99精品无人区乱码1区2区3区 | 18无码粉嫩小泬无套在线观看 | 亚洲中文字幕无码中字 | 任你躁国产自任一区二区三区 | 国产乱人伦偷精品视频 | 内射后入在线观看一区 | 久久久av男人的天堂 | 图片小说视频一区二区 | 无遮挡国产高潮视频免费观看 | 俺去俺来也www色官网 | 亚洲中文字幕无码一久久区 | 亚洲天堂2017无码中文 | 久久久精品欧美一区二区免费 | 国精品人妻无码一区二区三区蜜柚 | 在线a亚洲视频播放在线观看 | 午夜无码人妻av大片色欲 | 久久99精品久久久久久 | 精品国偷自产在线视频 | 性色欲网站人妻丰满中文久久不卡 | 亚洲午夜福利在线观看 | aa片在线观看视频在线播放 | 亚洲成a人片在线观看日本 | 婷婷丁香五月天综合东京热 | 激情亚洲一区国产精品 | 亚洲 激情 小说 另类 欧美 | 人妻尝试又大又粗久久 | 成人亚洲精品久久久久 | 少妇愉情理伦片bd | 精品人妻人人做人人爽夜夜爽 | 欧美日本免费一区二区三区 | 亚洲色偷偷男人的天堂 | 国产农村乱对白刺激视频 | 人妻人人添人妻人人爱 | 精品久久久久久亚洲精品 | 亚洲热妇无码av在线播放 | 久久精品人妻少妇一区二区三区 | 亚洲成a人片在线观看日本 | 色情久久久av熟女人妻网站 | 狠狠色欧美亚洲狠狠色www | 亚洲色www成人永久网址 | 熟妇人妻中文av无码 | 东京热无码av男人的天堂 | 一二三四在线观看免费视频 | 一本久道久久综合婷婷五月 | 亚洲精品久久久久久一区二区 | 亚洲精品久久久久久久久久久 | 天天综合网天天综合色 | 色诱久久久久综合网ywww | 激情综合激情五月俺也去 | 亚洲熟悉妇女xxx妇女av | 国产精品久久久久久久9999 | 国产午夜精品一区二区三区嫩草 | 国产又爽又猛又粗的视频a片 | 国产精品美女久久久久av爽李琼 | 久久97精品久久久久久久不卡 | 亚洲无人区午夜福利码高清完整版 | 在教室伦流澡到高潮hnp视频 | 欧美成人高清在线播放 | 久久97精品久久久久久久不卡 | 精品国产aⅴ无码一区二区 | 精品久久综合1区2区3区激情 | 久久伊人色av天堂九九小黄鸭 | 六月丁香婷婷色狠狠久久 | 国产精品人妻一区二区三区四 | 福利一区二区三区视频在线观看 | 18精品久久久无码午夜福利 | 精品无码av一区二区三区 | 亚洲码国产精品高潮在线 | www国产亚洲精品久久网站 | 欧美亚洲日韩国产人成在线播放 | 狂野欧美性猛交免费视频 | 99国产精品白浆在线观看免费 | 激情内射亚州一区二区三区爱妻 | 国产亚洲精品精品国产亚洲综合 | www国产亚洲精品久久网站 | 玩弄少妇高潮ⅹxxxyw | a在线观看免费网站大全 | 免费观看又污又黄的网站 | 正在播放东北夫妻内射 | 成人试看120秒体验区 | 日日摸夜夜摸狠狠摸婷婷 | 麻豆果冻传媒2021精品传媒一区下载 | 日韩视频 中文字幕 视频一区 | 免费观看的无遮挡av | 欧美人与牲动交xxxx | 日本熟妇大屁股人妻 | 狂野欧美激情性xxxx | 亚洲日韩av一区二区三区四区 | 99er热精品视频 | 丝袜美腿亚洲一区二区 | 久久婷婷五月综合色国产香蕉 | 亚洲 欧美 激情 小说 另类 | 乱人伦人妻中文字幕无码久久网 | 久久久久se色偷偷亚洲精品av | 日韩精品乱码av一区二区 | 国产激情无码一区二区app | 精品一区二区不卡无码av | 中文字幕+乱码+中文字幕一区 | 久久99精品久久久久久 | 乱人伦人妻中文字幕无码久久网 | 久久久久99精品国产片 | 一本久道久久综合狠狠爱 | 亚洲熟妇色xxxxx亚洲 | 亚洲色在线无码国产精品不卡 | 精品乱子伦一区二区三区 | 中文字幕乱码中文乱码51精品 | 精品国产一区二区三区av 性色 | 久久久久成人片免费观看蜜芽 | 精品水蜜桃久久久久久久 | 日本丰满熟妇videos | 日本乱人伦片中文三区 | www成人国产高清内射 | 无码人妻出轨黑人中文字幕 | 欧美熟妇另类久久久久久多毛 | 亚洲娇小与黑人巨大交 | 亚洲色偷偷偷综合网 | 国产免费久久久久久无码 | 国产在线无码精品电影网 | 丝袜人妻一区二区三区 | 欧美成人高清在线播放 | 在线播放亚洲第一字幕 | 玩弄人妻少妇500系列视频 | 在线欧美精品一区二区三区 | 色综合久久久无码中文字幕 | 免费无码一区二区三区蜜桃大 | 中文字幕无码日韩欧毛 | 欧洲极品少妇 | 国产成人精品视频ⅴa片软件竹菊 | 久久精品国产精品国产精品污 | 国产人成高清在线视频99最全资源 | 十八禁视频网站在线观看 | 美女扒开屁股让男人桶 | 日日碰狠狠丁香久燥 | 国产疯狂伦交大片 | 亚洲va欧美va天堂v国产综合 | 99精品无人区乱码1区2区3区 | 国产亚洲精品久久久ai换 | 久久精品国产一区二区三区肥胖 | 亚洲色无码一区二区三区 | 女人色极品影院 | 午夜福利试看120秒体验区 | 300部国产真实乱 | 亚洲国产精品无码一区二区三区 | 最近的中文字幕在线看视频 | 无遮无挡爽爽免费视频 | 国产超级va在线观看视频 | 欧美阿v高清资源不卡在线播放 | 老熟女重囗味hdxx69 | 曰韩少妇内射免费播放 | 中文字幕久久久久人妻 | 国产亚洲精品久久久久久大师 | 国产女主播喷水视频在线观看 | 黄网在线观看免费网站 | 波多野结衣 黑人 | 国产精品久久久 | 久久国产精品_国产精品 | 牲欲强的熟妇农村老妇女视频 | 免费无码肉片在线观看 | 国产真实伦对白全集 | 麻豆国产97在线 | 欧洲 | 国产成人精品视频ⅴa片软件竹菊 | 久久99国产综合精品 | 玩弄少妇高潮ⅹxxxyw | 久久国产精品_国产精品 | 亚洲色大成网站www国产 | 国产免费无码一区二区视频 | 欧美乱妇无乱码大黄a片 | 麻豆蜜桃av蜜臀av色欲av | 国产超碰人人爽人人做人人添 | 中文字幕乱妇无码av在线 | 极品嫩模高潮叫床 | 国产偷自视频区视频 | 亚洲欧美综合区丁香五月小说 | 国产成人午夜福利在线播放 | 日日摸夜夜摸狠狠摸婷婷 | 黑人巨大精品欧美黑寡妇 | 伊人久久婷婷五月综合97色 | 学生妹亚洲一区二区 | 成人欧美一区二区三区黑人免费 | 精品国产aⅴ无码一区二区 | 亚洲第一网站男人都懂 | 亚洲精品国偷拍自产在线麻豆 | 午夜无码区在线观看 | 东京热无码av男人的天堂 | 国产一区二区三区影院 | 一本精品99久久精品77 | 最新国产乱人伦偷精品免费网站 | 久久久久久av无码免费看大片 | 欧美日本免费一区二区三区 | 俺去俺来也在线www色官网 | 国产人妻精品一区二区三区 | 亚洲精品午夜无码电影网 | 无遮挡国产高潮视频免费观看 | 亚洲色欲久久久综合网东京热 | 性色av无码免费一区二区三区 | 精品欧美一区二区三区久久久 | 国产精品-区区久久久狼 | 三级4级全黄60分钟 | 九九久久精品国产免费看小说 | 天天躁夜夜躁狠狠是什么心态 | 学生妹亚洲一区二区 | 纯爱无遮挡h肉动漫在线播放 | 强伦人妻一区二区三区视频18 | 一本大道伊人av久久综合 | 中文字幕久久久久人妻 | 无套内射视频囯产 | 3d动漫精品啪啪一区二区中 | 中文字幕乱码人妻二区三区 | 午夜时刻免费入口 | 国产极品视觉盛宴 | 亚洲综合久久一区二区 | 内射巨臀欧美在线视频 | 亚洲熟妇色xxxxx欧美老妇 | 成人无码精品1区2区3区免费看 | 无码午夜成人1000部免费视频 | 亚洲精品国偷拍自产在线麻豆 | 国产成人一区二区三区在线观看 | 丰满少妇人妻久久久久久 | 日日橹狠狠爱欧美视频 | 国产午夜亚洲精品不卡 | 成人三级无码视频在线观看 | 亚洲色偷偷偷综合网 | 亚洲一区二区三区国产精华液 | 精品亚洲韩国一区二区三区 | 77777熟女视频在线观看 а天堂中文在线官网 | 免费中文字幕日韩欧美 | 乱人伦人妻中文字幕无码久久网 | 娇妻被黑人粗大高潮白浆 | 日日摸夜夜摸狠狠摸婷婷 | 成人影院yy111111在线观看 | 麻花豆传媒剧国产免费mv在线 | 人妻体内射精一区二区三四 | 两性色午夜免费视频 | 亚洲日韩精品欧美一区二区 | 久久99精品久久久久久动态图 | 亚洲国产精品成人久久蜜臀 | 国产精品美女久久久 | 亚洲欧洲无卡二区视頻 | 在线a亚洲视频播放在线观看 | 国色天香社区在线视频 | 国产成人av免费观看 | 中国女人内谢69xxxxxa片 | 午夜理论片yy44880影院 | 亚洲精品一区二区三区婷婷月 | 久久天天躁夜夜躁狠狠 | 精品国产成人一区二区三区 | 日韩精品无码免费一区二区三区 | 国产精品毛多多水多 | 亚洲国产精品久久久久久 | 九九在线中文字幕无码 | 日日天日日夜日日摸 | 丰满诱人的人妻3 | 清纯唯美经典一区二区 | 亚洲欧美综合区丁香五月小说 | 国产熟妇高潮叫床视频播放 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲码国产精品高潮在线 | 狠狠色色综合网站 | 少妇激情av一区二区 | 少妇久久久久久人妻无码 | 欧美野外疯狂做受xxxx高潮 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产精品久免费的黄网站 | 黑人大群体交免费视频 | 久久99精品国产麻豆 | 亚洲а∨天堂久久精品2021 | 成人无码精品1区2区3区免费看 | 强奷人妻日本中文字幕 | 人妻人人添人妻人人爱 | 欧美老妇与禽交 | 国产精品亚洲а∨无码播放麻豆 | 欧美午夜特黄aaaaaa片 | 国产精品毛片一区二区 | 老熟妇乱子伦牲交视频 | 女人被爽到呻吟gif动态图视看 | 成人片黄网站色大片免费观看 | 国产电影无码午夜在线播放 | 亚洲国产欧美在线成人 | 精品偷自拍另类在线观看 | 无遮挡国产高潮视频免费观看 | 18精品久久久无码午夜福利 | 无码人妻少妇伦在线电影 | 丝袜美腿亚洲一区二区 | 国产人妻人伦精品1国产丝袜 | 日韩视频 中文字幕 视频一区 | 丰满人妻精品国产99aⅴ | 老司机亚洲精品影院 | 大胆欧美熟妇xx | 日本高清一区免费中文视频 | 亚洲а∨天堂久久精品2021 | 人妻aⅴ无码一区二区三区 | 精品无码成人片一区二区98 | 人妻熟女一区 | 伊人久久大香线蕉亚洲 | 国产人妻人伦精品1国产丝袜 | 国产超级va在线观看视频 | www国产亚洲精品久久久日本 | 免费中文字幕日韩欧美 | 亚洲欧美色中文字幕在线 | 日本乱人伦片中文三区 | 大地资源中文第3页 | 任你躁国产自任一区二区三区 | 色婷婷综合激情综在线播放 | 国产精品久久久久久亚洲影视内衣 | 少妇被粗大的猛进出69影院 | 色综合久久久久综合一本到桃花网 | 亚洲男人av天堂午夜在 | 亚洲一区二区三区四区 | 荫蒂被男人添的好舒服爽免费视频 | 大屁股大乳丰满人妻 | 国产免费观看黄av片 | 女人色极品影院 | 免费国产成人高清在线观看网站 | 国产极品美女高潮无套在线观看 | 亚洲区欧美区综合区自拍区 | 午夜理论片yy44880影院 | 亚洲熟妇色xxxxx亚洲 | 香港三级日本三级妇三级 | 女人被男人爽到呻吟的视频 | 3d动漫精品啪啪一区二区中 | 日韩无套无码精品 | а√天堂www在线天堂小说 | 日本www一道久久久免费榴莲 | 麻花豆传媒剧国产免费mv在线 | 久久国产精品偷任你爽任你 | a在线亚洲男人的天堂 | 精品少妇爆乳无码av无码专区 | 高清不卡一区二区三区 | 麻豆精产国品 | 香港三级日本三级妇三级 | 无码av岛国片在线播放 | 无码福利日韩神码福利片 | 日本护士xxxxhd少妇 | 野外少妇愉情中文字幕 | 免费网站看v片在线18禁无码 | 精品人妻人人做人人爽 | 少妇久久久久久人妻无码 | 日本熟妇乱子伦xxxx | 久久亚洲精品成人无码 | 免费中文字幕日韩欧美 | 丰满诱人的人妻3 | 国产亚洲精品精品国产亚洲综合 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲 欧美 激情 小说 另类 | 国产免费久久精品国产传媒 | 日本乱人伦片中文三区 | 青青青手机频在线观看 | 麻豆av传媒蜜桃天美传媒 | 小泽玛莉亚一区二区视频在线 | 天天拍夜夜添久久精品 | 国产97在线 | 亚洲 | 国产午夜无码视频在线观看 | 欧美日韩视频无码一区二区三 | 午夜不卡av免费 一本久久a久久精品vr综合 | 色窝窝无码一区二区三区色欲 | 亚洲一区二区三区香蕉 | 国产精品毛多多水多 | 在线观看国产一区二区三区 | 131美女爱做视频 | 老子影院午夜精品无码 | 377p欧洲日本亚洲大胆 | 亚洲va欧美va天堂v国产综合 | 日本精品少妇一区二区三区 | 老熟妇乱子伦牲交视频 | 野外少妇愉情中文字幕 | 日韩人妻无码中文字幕视频 | 国产av一区二区三区最新精品 | 亚洲成色在线综合网站 | 国产精品.xx视频.xxtv | 国产亚洲人成在线播放 | 国产亚洲视频中文字幕97精品 | 蜜臀av无码人妻精品 | 国产97人人超碰caoprom | 免费人成网站视频在线观看 | 少妇邻居内射在线 | 日本护士xxxxhd少妇 | 狠狠色色综合网站 | 亚洲男人av天堂午夜在 | 国产精品福利视频导航 | 久久精品中文字幕一区 | 国产乱人偷精品人妻a片 | 久久精品国产一区二区三区 | 激情内射亚州一区二区三区爱妻 | 精品无码成人片一区二区98 | 久久五月精品中文字幕 | 丰满诱人的人妻3 | 亚洲精品午夜国产va久久成人 | 亚洲精品成人av在线 | 四虎永久在线精品免费网址 | 成人性做爰aaa片免费看 | 亚洲中文字幕成人无码 | 无码人妻久久一区二区三区不卡 | 日韩av无码中文无码电影 | 97资源共享在线视频 | 成熟女人特级毛片www免费 | 无码av中文字幕免费放 | 中文字幕乱码人妻二区三区 | 久久人人爽人人爽人人片av高清 | 久久精品国产日本波多野结衣 | 无码精品人妻一区二区三区av | 国内综合精品午夜久久资源 | 日韩成人一区二区三区在线观看 | 久久精品中文字幕大胸 | 亚洲熟妇色xxxxx欧美老妇y | 欧美老妇交乱视频在线观看 | 熟女少妇在线视频播放 | 亚洲成av人片在线观看无码不卡 | 国产小呦泬泬99精品 | 人妻中文无码久热丝袜 | 日本精品高清一区二区 | 国产性生交xxxxx无码 | 久久国产精品萌白酱免费 | 丝袜美腿亚洲一区二区 | 国产莉萝无码av在线播放 | 国产人妻人伦精品1国产丝袜 | 日本一卡2卡3卡四卡精品网站 | 亚洲国产欧美日韩精品一区二区三区 | 久久人人爽人人爽人人片ⅴ | 午夜福利不卡在线视频 | 日本成熟视频免费视频 | 日韩欧美成人免费观看 | 成人免费视频在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲自偷自偷在线制服 | 精品国产麻豆免费人成网站 | 中文字幕乱码人妻无码久久 | 精品欧美一区二区三区久久久 | 漂亮人妻洗澡被公强 日日躁 | 欧美 日韩 人妻 高清 中文 | 国产无套内射久久久国产 | 日韩av无码中文无码电影 | 国产深夜福利视频在线 | 天堂无码人妻精品一区二区三区 | 人妻少妇精品久久 | 精品久久久无码人妻字幂 | 内射白嫩少妇超碰 | 最近的中文字幕在线看视频 | 老熟妇乱子伦牲交视频 | 色综合视频一区二区三区 | 天天综合网天天综合色 | 影音先锋中文字幕无码 | 亚洲欧美精品伊人久久 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 麻豆精品国产精华精华液好用吗 | 2020久久香蕉国产线看观看 | 色欲人妻aaaaaaa无码 | 丰满人妻翻云覆雨呻吟视频 | 欧美 日韩 亚洲 在线 | 久久这里只有精品视频9 | 色欲av亚洲一区无码少妇 | 中文字幕无码av波多野吉衣 | 色婷婷综合激情综在线播放 | 国产亚洲精品久久久久久久久动漫 | 国产成人无码区免费内射一片色欲 | 免费国产黄网站在线观看 | 中文字幕乱码中文乱码51精品 | 国产sm调教视频在线观看 | 97人妻精品一区二区三区 | 成熟人妻av无码专区 | 精品国偷自产在线视频 | 激情爆乳一区二区三区 | 无码人妻少妇伦在线电影 | 伊在人天堂亚洲香蕉精品区 | 九月婷婷人人澡人人添人人爽 | 亚拍精品一区二区三区探花 | 无码人妻出轨黑人中文字幕 | 大乳丰满人妻中文字幕日本 | 国产av无码专区亚洲a∨毛片 | 久久久久亚洲精品中文字幕 | 亚洲伊人久久精品影院 | 又大又紧又粉嫩18p少妇 | 免费男性肉肉影院 | www成人国产高清内射 | 久久精品99久久香蕉国产色戒 | 亚洲成av人片在线观看无码不卡 | 日本一区二区三区免费高清 | 夜夜影院未满十八勿进 | 久久久精品456亚洲影院 | 99久久99久久免费精品蜜桃 | www国产亚洲精品久久久日本 | 久久视频在线观看精品 | 女人被爽到呻吟gif动态图视看 | 丰满人妻翻云覆雨呻吟视频 | 欧美兽交xxxx×视频 | 国产亚洲人成在线播放 | 日本va欧美va欧美va精品 | 亚洲欧洲日本综合aⅴ在线 | 欧美变态另类xxxx | 88国产精品欧美一区二区三区 | 男女超爽视频免费播放 | 久久人人97超碰a片精品 | 免费看男女做好爽好硬视频 | 国产手机在线αⅴ片无码观看 | 欧美日本免费一区二区三区 | 99精品国产综合久久久久五月天 | 日本xxxx色视频在线观看免费 | 国产无遮挡又黄又爽免费视频 | 国产超级va在线观看视频 | 999久久久国产精品消防器材 | 久久国语露脸国产精品电影 | 亚洲中文字幕在线观看 | 成人无码精品1区2区3区免费看 | 少妇人妻大乳在线视频 | 午夜不卡av免费 一本久久a久久精品vr综合 | 熟妇人妻激情偷爽文 | 青青青手机频在线观看 | 97精品人妻一区二区三区香蕉 | 午夜时刻免费入口 | 亚洲日韩一区二区 | 日产精品高潮呻吟av久久 | 久久久久久av无码免费看大片 | 国产真实夫妇视频 | 色老头在线一区二区三区 | 国产精品a成v人在线播放 | 久久亚洲精品成人无码 | 精品乱码久久久久久久 | 欧美日韩一区二区综合 | 377p欧洲日本亚洲大胆 | 黑人玩弄人妻中文在线 | 亚洲色大成网站www | 亚洲爆乳无码专区 | 成人一在线视频日韩国产 | 丰满少妇人妻久久久久久 | 无码精品国产va在线观看dvd | 中文字幕 亚洲精品 第1页 | 内射白嫩少妇超碰 | 久激情内射婷内射蜜桃人妖 | 日本大香伊一区二区三区 | 国产免费久久久久久无码 | 波多野结衣乳巨码无在线观看 | 日本熟妇人妻xxxxx人hd | 激情亚洲一区国产精品 | 国产高潮视频在线观看 | 窝窝午夜理论片影院 | 久久国产精品二国产精品 | 在线观看国产午夜福利片 | 99久久人妻精品免费二区 | 青草青草久热国产精品 | 少妇性荡欲午夜性开放视频剧场 | 日韩精品无码一区二区中文字幕 | 强辱丰满人妻hd中文字幕 | 爽爽影院免费观看 | 无码一区二区三区在线观看 | 日韩av无码一区二区三区 | 欧美黑人性暴力猛交喷水 | 无码中文字幕色专区 | 撕开奶罩揉吮奶头视频 | 国产精品va在线观看无码 | 东京热无码av男人的天堂 | 国产小呦泬泬99精品 | 国产精品久久久午夜夜伦鲁鲁 | 青青青手机频在线观看 | 精品无码一区二区三区的天堂 | 国产熟妇另类久久久久 | 狂野欧美激情性xxxx | 日本欧美一区二区三区乱码 | 2020最新国产自产精品 | 中国女人内谢69xxxx | 精品国产青草久久久久福利 | 国产偷自视频区视频 | 国产农村妇女高潮大叫 | 欧美黑人巨大xxxxx | 成年美女黄网站色大免费视频 | 国产精品资源一区二区 | 亚洲大尺度无码无码专区 | 国产内射老熟女aaaa | 亚洲国精产品一二二线 | 日产精品高潮呻吟av久久 | 国产精品第一国产精品 | 国产热a欧美热a在线视频 | 久久精品国产99精品亚洲 | 国产精品久久久久影院嫩草 | 熟女俱乐部五十路六十路av | 精品国产成人一区二区三区 | 亚洲娇小与黑人巨大交 | 中文字幕无码日韩专区 | 亚洲精品午夜无码电影网 | 精品国偷自产在线视频 | 成人免费视频在线观看 | 国产精品久久国产精品99 | 99久久人妻精品免费二区 | 欧美日韩视频无码一区二区三 | 亚洲精品无码人妻无码 | 九一九色国产 | 日韩在线不卡免费视频一区 | 日韩精品久久久肉伦网站 | 乱码av麻豆丝袜熟女系列 | 国产区女主播在线观看 | 久久综合网欧美色妞网 | 99久久人妻精品免费二区 | 久久综合给合久久狠狠狠97色 | www成人国产高清内射 | 97资源共享在线视频 | 日韩欧美成人免费观看 | 欧美老熟妇乱xxxxx | 国产成人精品一区二区在线小狼 | 国产亚洲视频中文字幕97精品 | 少妇人妻av毛片在线看 | 国产亚洲精品久久久久久 | 国产精品亚洲lv粉色 | 国产手机在线αⅴ片无码观看 | 久久99热只有频精品8 | 成熟人妻av无码专区 | 麻豆国产丝袜白领秘书在线观看 | 蜜桃臀无码内射一区二区三区 | 精品水蜜桃久久久久久久 | 亚洲中文字幕在线观看 | 又大又硬又爽免费视频 | 亚洲中文字幕无码中文字在线 | 人妻与老人中文字幕 | 水蜜桃av无码 | 亚洲人亚洲人成电影网站色 | 樱花草在线播放免费中文 | 永久免费精品精品永久-夜色 | 国产精品人妻一区二区三区四 | 欧美性黑人极品hd | 精品国偷自产在线 | 欧美熟妇另类久久久久久不卡 | 国产精品无码一区二区桃花视频 | 日日摸日日碰夜夜爽av | 97久久精品无码一区二区 | 精品欧美一区二区三区久久久 | 欧美丰满老熟妇xxxxx性 | 中文字幕无码av激情不卡 | 亚洲国产精品无码久久久久高潮 | 国产亚洲精品久久久久久国模美 | 伊人色综合久久天天小片 | 亚洲日本在线电影 | 成人试看120秒体验区 | 久久久亚洲欧洲日产国码αv | 欧美xxxxx精品 | 老太婆性杂交欧美肥老太 | 亚洲人亚洲人成电影网站色 | 成人免费无码大片a毛片 | 中文字幕 人妻熟女 | 午夜不卡av免费 一本久久a久久精品vr综合 | 久久综合狠狠综合久久综合88 | 欧美野外疯狂做受xxxx高潮 | 久久无码专区国产精品s | 亚洲精品午夜无码电影网 | 东京热一精品无码av | 国产xxx69麻豆国语对白 | 欧美老人巨大xxxx做受 | 国产精品人人爽人人做我的可爱 | 蜜桃视频插满18在线观看 | 成人欧美一区二区三区 | 色偷偷人人澡人人爽人人模 | 亚洲 欧美 激情 小说 另类 | 伊人久久大香线蕉午夜 | 亚洲中文字幕在线无码一区二区 | 永久免费精品精品永久-夜色 | 97夜夜澡人人双人人人喊 | 黄网在线观看免费网站 | 野狼第一精品社区 | 爽爽影院免费观看 | 人妻少妇被猛烈进入中文字幕 | 欧洲精品码一区二区三区免费看 | 国产精品99久久精品爆乳 | 国产亚洲日韩欧美另类第八页 | 久久久久亚洲精品男人的天堂 | 又紧又大又爽精品一区二区 | 国产精品办公室沙发 | 美女扒开屁股让男人桶 | 欧美精品无码一区二区三区 | 久久久国产精品无码免费专区 | 国产高清不卡无码视频 | 又紧又大又爽精品一区二区 | 久久久精品成人免费观看 | 亚洲人成影院在线观看 | 久久久久亚洲精品中文字幕 | 亚洲欧美日韩国产精品一区二区 | 超碰97人人做人人爱少妇 | 青春草在线视频免费观看 | 国产69精品久久久久app下载 | 亚洲精品国产第一综合99久久 | 国产精品爱久久久久久久 | 亚洲精品久久久久久久久久久 | 2019nv天堂香蕉在线观看 | 99er热精品视频 | 国产亚洲日韩欧美另类第八页 | 午夜理论片yy44880影院 | 国产明星裸体无码xxxx视频 | 中文字幕无码日韩专区 | 亚洲s码欧洲m码国产av | 综合人妻久久一区二区精品 | 风流少妇按摩来高潮 | 亚洲人交乣女bbw | 漂亮人妻洗澡被公强 日日躁 | 熟妇人妻中文av无码 | 国产精品无码mv在线观看 | 午夜精品一区二区三区的区别 | 在线观看国产一区二区三区 | 国产精品高潮呻吟av久久 | 97久久精品无码一区二区 | 国产婷婷色一区二区三区在线 | 大地资源中文第3页 | 国产成人综合色在线观看网站 | 亚洲色欲久久久综合网东京热 | 无码人妻精品一区二区三区下载 | 国产凸凹视频一区二区 | 成人无码影片精品久久久 | 真人与拘做受免费视频 | 一二三四在线观看免费视频 | 色情久久久av熟女人妻网站 | 亚洲人成网站免费播放 | av无码不卡在线观看免费 | 日本va欧美va欧美va精品 | 精品国产福利一区二区 | 精品无码国产自产拍在线观看蜜 | 欧美性生交活xxxxxdddd | 人妻体内射精一区二区三四 | 国产精品办公室沙发 | 最新国产乱人伦偷精品免费网站 | 国产极品视觉盛宴 | 亚洲呦女专区 | 国内少妇偷人精品视频免费 | 国产激情一区二区三区 | 少妇愉情理伦片bd | 97久久国产亚洲精品超碰热 | 欧美日韩在线亚洲综合国产人 | 无码纯肉视频在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 我要看www免费看插插视频 | 欧美精品一区二区精品久久 | 欧美 日韩 人妻 高清 中文 | 久久国语露脸国产精品电影 | 免费视频欧美无人区码 | 国产无套内射久久久国产 | 老子影院午夜伦不卡 | 久久久成人毛片无码 | 中文精品久久久久人妻不卡 | 久久久久久久女国产乱让韩 | 无码人妻丰满熟妇区毛片18 | 国产午夜亚洲精品不卡下载 | 樱花草在线播放免费中文 | 国产午夜福利亚洲第一 | 亚洲精品久久久久久一区二区 | 1000部夫妻午夜免费 | 免费乱码人妻系列无码专区 | 亚洲人成网站在线播放942 | 国产成人av免费观看 | 一二三四在线观看免费视频 | 欧美性生交xxxxx久久久 | 国产亚洲欧美在线专区 | 国产av一区二区三区最新精品 | 亚洲爆乳无码专区 | 免费无码午夜福利片69 | 76少妇精品导航 | 性啪啪chinese东北女人 | 精品人妻人人做人人爽 | 国产无套粉嫩白浆在线 | 亚洲伊人久久精品影院 | 久久午夜无码鲁丝片午夜精品 | 激情亚洲一区国产精品 | 国精产品一品二品国精品69xx | 亚无码乱人伦一区二区 | 中文字幕人妻丝袜二区 | 欧美一区二区三区视频在线观看 | 中文字幕无码免费久久9一区9 | 久久国产精品萌白酱免费 | 少妇被粗大的猛进出69影院 | 99久久婷婷国产综合精品青草免费 | 中文字幕无线码 | 黑人大群体交免费视频 | 亚洲综合无码一区二区三区 | 久久久久人妻一区精品色欧美 | 内射巨臀欧美在线视频 | 亚洲国产成人av在线观看 | 亚洲中文字幕无码中字 | 日韩人妻无码中文字幕视频 | 亚洲欧洲日本综合aⅴ在线 | 亚拍精品一区二区三区探花 | 在线播放亚洲第一字幕 | 亚洲成a人片在线观看无码3d | 欧美精品免费观看二区 | 成熟女人特级毛片www免费 | 欧美高清在线精品一区 | 国内精品一区二区三区不卡 | 日本大乳高潮视频在线观看 | 国产97人人超碰caoprom | 黑人巨大精品欧美黑寡妇 | 国产区女主播在线观看 | 无码国产乱人伦偷精品视频 | 自拍偷自拍亚洲精品10p | 无码福利日韩神码福利片 | 亚洲精品无码人妻无码 | 天堂久久天堂av色综合 | 兔费看少妇性l交大片免费 | 久久国产精品精品国产色婷婷 | 永久免费观看美女裸体的网站 | 日韩亚洲欧美精品综合 | 日欧一片内射va在线影院 | 国产偷国产偷精品高清尤物 | 国产莉萝无码av在线播放 | 国语自产偷拍精品视频偷 | 精品欧美一区二区三区久久久 | 无码国内精品人妻少妇 | 日韩人妻无码一区二区三区久久99 | 国产成人人人97超碰超爽8 | 亚洲色在线无码国产精品不卡 | 一本久道久久综合狠狠爱 | 男女作爱免费网站 | 中文字幕精品av一区二区五区 | 日本一区二区更新不卡 | 亚洲日韩精品欧美一区二区 | 国产精品无码永久免费888 | 午夜精品久久久内射近拍高清 | 国产人妻久久精品二区三区老狼 | 成人免费视频在线观看 | 在线播放无码字幕亚洲 | 色综合久久中文娱乐网 | 300部国产真实乱 | 国产精品久久精品三级 | 欧美亚洲日韩国产人成在线播放 | 欧美性生交活xxxxxdddd | 亚洲春色在线视频 | 女人被男人爽到呻吟的视频 | 欧美老妇与禽交 | 无码国内精品人妻少妇 | 日本一卡2卡3卡四卡精品网站 | 午夜精品久久久久久久久 | 精品国产一区二区三区av 性色 | 亚洲色在线无码国产精品不卡 | 少妇激情av一区二区 | 一本无码人妻在中文字幕免费 | 国产精品美女久久久久av爽李琼 | 亚洲日本va午夜在线电影 | 色综合久久久无码网中文 | 欧美一区二区三区 | 亚洲精品成a人在线观看 | 国产做国产爱免费视频 | 国产精品沙发午睡系列 | 毛片内射-百度 | 国内揄拍国内精品少妇国语 | 国产精品久久久久久久影院 | 97精品人妻一区二区三区香蕉 | 在线观看国产一区二区三区 | 亚洲国产精品一区二区第一页 | 欧美精品免费观看二区 | 国产午夜精品一区二区三区嫩草 | 丰满少妇熟乱xxxxx视频 | 女人被男人躁得好爽免费视频 | 国产 精品 自在自线 | 午夜精品久久久内射近拍高清 | 国产精品va在线播放 | 四虎影视成人永久免费观看视频 | 欧美性黑人极品hd | 粉嫩少妇内射浓精videos | 国产九九九九九九九a片 | 精品一区二区三区无码免费视频 | www一区二区www免费 | 曰本女人与公拘交酡免费视频 | 国产 浪潮av性色四虎 | 国产成人精品久久亚洲高清不卡 | 欧美日韩综合一区二区三区 | 亚洲中文字幕无码一久久区 | 国产人妻精品午夜福利免费 | 女人色极品影院 | 97色伦图片97综合影院 | 色狠狠av一区二区三区 | 麻豆成人精品国产免费 | 亚洲大尺度无码无码专区 | 精品无码国产自产拍在线观看蜜 | 青青青爽视频在线观看 | 色综合久久久无码网中文 | 欧美人与牲动交xxxx | 国产乱人伦偷精品视频 | 国产精品a成v人在线播放 | 蜜桃臀无码内射一区二区三区 | 亚洲色大成网站www | 国产两女互慰高潮视频在线观看 | 国产又爽又黄又刺激的视频 | 亚洲成色在线综合网站 | 久久久久99精品成人片 | 国产成人人人97超碰超爽8 | 久久这里只有精品视频9 | 亚洲成色www久久网站 | 国产麻豆精品精东影业av网站 | 亚洲成a人片在线观看日本 | 清纯唯美经典一区二区 | 日日摸夜夜摸狠狠摸婷婷 | 99精品国产综合久久久久五月天 | 无遮无挡爽爽免费视频 | 强伦人妻一区二区三区视频18 | 亚洲综合精品香蕉久久网 | 天堂久久天堂av色综合 | 国产人妻人伦精品1国产丝袜 | 55夜色66夜色国产精品视频 | 无码av最新清无码专区吞精 | 日韩人妻无码一区二区三区久久99 | 色综合久久中文娱乐网 | 国产莉萝无码av在线播放 | 波多野结衣av在线观看 | 国产av无码专区亚洲awww | 亚洲精品无码人妻无码 | 国产成人无码av片在线观看不卡 | 久久久久人妻一区精品色欧美 | 三级4级全黄60分钟 | 国产精品99爱免费视频 | 国产乱人偷精品人妻a片 | 一区二区三区高清视频一 | 在线观看国产一区二区三区 | 国产九九九九九九九a片 | 成人欧美一区二区三区黑人免费 | 国产人妻久久精品二区三区老狼 | aⅴ亚洲 日韩 色 图网站 播放 | 中文字幕精品av一区二区五区 | 天天躁日日躁狠狠躁免费麻豆 | 波多野结衣一区二区三区av免费 | 亚洲成在人网站无码天堂 | 久久99精品国产麻豆 | 色婷婷av一区二区三区之红樱桃 | 成在人线av无码免费 | 国产精品亚洲综合色区韩国 | 亚洲精品一区二区三区四区五区 | 国产又爽又猛又粗的视频a片 | 天堂а√在线地址中文在线 | а√资源新版在线天堂 | 国产成人无码av片在线观看不卡 | 激情内射日本一区二区三区 | 国产高潮视频在线观看 | 无码国产乱人伦偷精品视频 | 国产精品亚洲专区无码不卡 | www成人国产高清内射 | 4hu四虎永久在线观看 | 美女极度色诱视频国产 | 内射欧美老妇wbb | 野外少妇愉情中文字幕 | 亚洲成av人影院在线观看 | 骚片av蜜桃精品一区 | 精品一区二区三区无码免费视频 | 亚洲va欧美va天堂v国产综合 | 亚洲爆乳精品无码一区二区三区 | 亚洲色欲色欲欲www在线 | 免费无码肉片在线观看 | 377p欧洲日本亚洲大胆 | 亚洲成av人影院在线观看 | 性生交片免费无码看人 | 99久久人妻精品免费二区 | 极品嫩模高潮叫床 | 鲁鲁鲁爽爽爽在线视频观看 | 国产无遮挡又黄又爽又色 | 动漫av网站免费观看 | 无码一区二区三区在线观看 | 日韩精品成人一区二区三区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 两性色午夜免费视频 | 精品成在人线av无码免费看 | 东京一本一道一二三区 | 国产97人人超碰caoprom | 婷婷五月综合缴情在线视频 | 偷窥日本少妇撒尿chinese | 国产亚洲视频中文字幕97精品 | 中文字幕日产无线码一区 | 国内精品人妻无码久久久影院蜜桃 | 欧美日本精品一区二区三区 | 久久国内精品自在自线 | 中国女人内谢69xxxx | 无码乱肉视频免费大全合集 | 成 人 免费观看网站 | 色综合久久久无码网中文 | 午夜成人1000部免费视频 | 国产精品丝袜黑色高跟鞋 | 久久亚洲精品中文字幕无男同 | 牲欲强的熟妇农村老妇女 | 精品厕所偷拍各类美女tp嘘嘘 | 色婷婷香蕉在线一区二区 | 偷窥日本少妇撒尿chinese | 国产成人精品优优av | 露脸叫床粗话东北少妇 | 国产午夜手机精彩视频 | 啦啦啦www在线观看免费视频 | 强开小婷嫩苞又嫩又紧视频 | 无码任你躁久久久久久久 | 娇妻被黑人粗大高潮白浆 | 亚洲狠狠色丁香婷婷综合 | 久久99精品国产麻豆蜜芽 | 亚洲精品一区二区三区婷婷月 | 国产 精品 自在自线 | 久久无码中文字幕免费影院蜜桃 | 国产成人无码一二三区视频 | 一本大道伊人av久久综合 | 亚洲色在线无码国产精品不卡 | 一本久久a久久精品vr综合 | 欧美乱妇无乱码大黄a片 | 99精品国产综合久久久久五月天 | 亚洲中文字幕乱码av波多ji | 欧美性生交活xxxxxdddd | 亚洲高清偷拍一区二区三区 | 人妻天天爽夜夜爽一区二区 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久久久久a亚洲欧洲av冫 | 国产无遮挡吃胸膜奶免费看 | 51国偷自产一区二区三区 | 国产凸凹视频一区二区 | 人妻天天爽夜夜爽一区二区 | 综合网日日天干夜夜久久 | 一本久久a久久精品亚洲 | 久久久精品456亚洲影院 | 人妻尝试又大又粗久久 | 国产在热线精品视频 | 国产精品久免费的黄网站 | 男人的天堂av网站 | 午夜性刺激在线视频免费 | 国产午夜手机精彩视频 | 久久五月精品中文字幕 | 亚洲国产精品美女久久久久 | 国产精品久免费的黄网站 | 人人妻人人澡人人爽欧美一区 | 中文精品久久久久人妻不卡 | 天堂а√在线地址中文在线 | 中文久久乱码一区二区 | 亚洲乱码中文字幕在线 | 377p欧洲日本亚洲大胆 | 成人免费无码大片a毛片 | 成人精品视频一区二区三区尤物 | 日日干夜夜干 | 久久精品国产日本波多野结衣 | 欧美精品在线观看 | 国产综合色产在线精品 | 精品欧美一区二区三区久久久 | 国产精品久久久久久无码 | 沈阳熟女露脸对白视频 | 丰满妇女强制高潮18xxxx | 又湿又紧又大又爽a视频国产 | 精品久久久久香蕉网 | 午夜福利试看120秒体验区 | 在线播放亚洲第一字幕 | 精品人妻中文字幕有码在线 | 巨爆乳无码视频在线观看 | 精品久久久久久亚洲精品 | 蜜臀aⅴ国产精品久久久国产老师 | 综合激情五月综合激情五月激情1 | 97久久超碰中文字幕 | 国产精品高潮呻吟av久久 | 国产性生大片免费观看性 | 娇妻被黑人粗大高潮白浆 | 亚洲成av人影院在线观看 | 亚洲综合精品香蕉久久网 | 国产在线精品一区二区高清不卡 | 亚洲一区二区三区含羞草 | www国产亚洲精品久久久日本 | 波多野结衣乳巨码无在线观看 | 俺去俺来也www色官网 | 亚洲国产欧美日韩精品一区二区三区 | 欧美性生交xxxxx久久久 | 国模大胆一区二区三区 | 久久久国产精品无码免费专区 | 亚洲人成网站在线播放942 | 女人被男人躁得好爽免费视频 | 特大黑人娇小亚洲女 | 亚洲欧美色中文字幕在线 | 美女极度色诱视频国产 | 成人无码精品一区二区三区 | 欧美性生交xxxxx久久久 | 精品夜夜澡人妻无码av蜜桃 | 高潮毛片无遮挡高清免费视频 | 中文字幕人妻无码一区二区三区 | 人人爽人人爽人人片av亚洲 | 婷婷色婷婷开心五月四房播播 | 久9re热视频这里只有精品 | 色五月丁香五月综合五月 | 大色综合色综合网站 | 亚洲狠狠婷婷综合久久 | 性生交片免费无码看人 | 成 人 网 站国产免费观看 | 久久久久99精品国产片 | 精品乱码久久久久久久 | 午夜时刻免费入口 | 在线观看欧美一区二区三区 | 日韩欧美中文字幕在线三区 | 六月丁香婷婷色狠狠久久 | 日本熟妇大屁股人妻 | 香蕉久久久久久av成人 | 无码人妻丰满熟妇区五十路百度 | 国产成人无码专区 | 无码人妻精品一区二区三区下载 | 国产成人精品无码播放 | 日日摸夜夜摸狠狠摸婷婷 | 中文字幕无线码 | 欧美黑人乱大交 | 熟妇人妻无乱码中文字幕 | 久久人人爽人人爽人人片ⅴ | 99精品无人区乱码1区2区3区 | 亚洲の无码国产の无码影院 | 精品无码av一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 欧美日韩人成综合在线播放 | 纯爱无遮挡h肉动漫在线播放 | а√天堂www在线天堂小说 | 婷婷综合久久中文字幕蜜桃三电影 | www成人国产高清内射 | 日韩精品无码一区二区中文字幕 | 漂亮人妻洗澡被公强 日日躁 | 99久久精品国产一区二区蜜芽 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品永久免费视频 | 亚洲色成人中文字幕网站 | 精品一二三区久久aaa片 | 国产无遮挡又黄又爽又色 | 无码乱肉视频免费大全合集 | 成人欧美一区二区三区 | 性欧美疯狂xxxxbbbb | 国产精品久久国产三级国 | 成人无码视频在线观看网站 | 亚洲精品一区国产 | 啦啦啦www在线观看免费视频 | 熟女俱乐部五十路六十路av | 日本一卡2卡3卡四卡精品网站 | 欧美 日韩 人妻 高清 中文 | 久久精品女人天堂av免费观看 | 波多野结衣aⅴ在线 | 亚洲一区二区三区播放 | 国产舌乚八伦偷品w中 | 免费无码av一区二区 | 国产三级精品三级男人的天堂 | 亚洲精品鲁一鲁一区二区三区 | 国产成人综合在线女婷五月99播放 | 无码乱肉视频免费大全合集 | 激情综合激情五月俺也去 | 中文字幕无码热在线视频 | 国内丰满熟女出轨videos | 帮老师解开蕾丝奶罩吸乳网站 | 少妇高潮一区二区三区99 | 欧美喷潮久久久xxxxx | 日本精品人妻无码免费大全 | 国产乱子伦视频在线播放 | 清纯唯美经典一区二区 | 国产av久久久久精东av | 久久亚洲精品中文字幕无男同 | 欧美人与善在线com | 欧美熟妇另类久久久久久不卡 | 亚洲国产av精品一区二区蜜芽 | 97久久精品无码一区二区 | 久激情内射婷内射蜜桃人妖 | 亚洲色欲色欲欲www在线 | 国产精品无码mv在线观看 | 日日摸夜夜摸狠狠摸婷婷 | 国产熟女一区二区三区四区五区 | 最新国产麻豆aⅴ精品无码 | 99久久久无码国产精品免费 | 成年女人永久免费看片 | 欧美 亚洲 国产 另类 | 无码国产色欲xxxxx视频 | 免费乱码人妻系列无码专区 | 性史性农村dvd毛片 | 亚洲人成网站在线播放942 | 综合网日日天干夜夜久久 | 亚洲小说图区综合在线 | 疯狂三人交性欧美 | 18禁止看的免费污网站 | 国产成人综合色在线观看网站 | 国产另类ts人妖一区二区 | 亚洲爆乳大丰满无码专区 | 中文亚洲成a人片在线观看 | 国产av剧情md精品麻豆 | 熟女体下毛毛黑森林 | 国产成人亚洲综合无码 | 久久久婷婷五月亚洲97号色 | 国产又爽又猛又粗的视频a片 | 国产精品亚洲а∨无码播放麻豆 | 日韩人妻少妇一区二区三区 | 鲁一鲁av2019在线 | av香港经典三级级 在线 | 国产97在线 | 亚洲 | 狠狠亚洲超碰狼人久久 | 中文字幕中文有码在线 | 亚洲日韩av片在线观看 | 永久免费精品精品永久-夜色 | 久久午夜夜伦鲁鲁片无码免费 | 中文字幕无码日韩专区 | 性色av无码免费一区二区三区 | 天天爽夜夜爽夜夜爽 | 99精品视频在线观看免费 | 久久久av男人的天堂 | aa片在线观看视频在线播放 | 亚洲欧洲中文日韩av乱码 | 精品国偷自产在线 | 日韩av无码中文无码电影 | 日本高清一区免费中文视频 | 亚洲欧美国产精品专区久久 | 中文无码精品a∨在线观看不卡 | 国产又爽又猛又粗的视频a片 | 国产艳妇av在线观看果冻传媒 | 国产成人无码午夜视频在线观看 | 九九综合va免费看 | 国产高潮视频在线观看 | 亚洲日韩精品欧美一区二区 | 正在播放东北夫妻内射 | 亚洲欧洲日本无在线码 | 丝袜人妻一区二区三区 | 内射爽无广熟女亚洲 | 真人与拘做受免费视频 | 日本成熟视频免费视频 | 四虎影视成人永久免费观看视频 | 亚洲狠狠婷婷综合久久 | 扒开双腿疯狂进出爽爽爽视频 | 久久久精品456亚洲影院 | 国产午夜亚洲精品不卡 | 亚洲熟妇色xxxxx亚洲 | 人人妻人人澡人人爽人人精品 | 精品 日韩 国产 欧美 视频 | 久久午夜无码鲁丝片午夜精品 | 无码午夜成人1000部免费视频 | 国产乱码精品一品二品 | 久久久精品成人免费观看 | 久久99热只有频精品8 | 亚洲色偷偷男人的天堂 | 性色av无码免费一区二区三区 | 激情内射亚州一区二区三区爱妻 | 黑人巨大精品欧美一区二区 | 国产乱子伦视频在线播放 | 日本一卡二卡不卡视频查询 | 中文字幕av伊人av无码av | 国产97色在线 | 免 | 国产色xx群视频射精 | 亚洲精品成人av在线 | 男女超爽视频免费播放 | 偷窥日本少妇撒尿chinese | 久久久久久亚洲精品a片成人 | 中国女人内谢69xxxx | 婷婷色婷婷开心五月四房播播 | 精品亚洲韩国一区二区三区 | 亚洲狠狠婷婷综合久久 | 亚洲男人av天堂午夜在 | 亚洲国产欧美在线成人 | 国产亚av手机在线观看 | 无码人妻丰满熟妇区五十路百度 | 少妇邻居内射在线 | 四虎国产精品免费久久 | 久久精品女人的天堂av | 午夜福利不卡在线视频 | 久激情内射婷内射蜜桃人妖 | 欧美日韩视频无码一区二区三 | 亚洲欧美日韩成人高清在线一区 | 亚洲人成无码网www | 国产亚洲美女精品久久久2020 | 亚洲精品国产精品乱码视色 | 成人影院yy111111在线观看 | 中国女人内谢69xxxx | 18禁止看的免费污网站 | av在线亚洲欧洲日产一区二区 | 中文字幕 亚洲精品 第1页 | 日韩精品久久久肉伦网站 | 国产精品资源一区二区 | 久久aⅴ免费观看 | 成人无码精品一区二区三区 | 中文字幕无码热在线视频 | 又大又紧又粉嫩18p少妇 | 内射白嫩少妇超碰 | 日本一本二本三区免费 | 亚洲精品中文字幕久久久久 | 精品国偷自产在线 | 波多野结衣 黑人 | 99精品无人区乱码1区2区3区 | 无码免费一区二区三区 | 99久久久国产精品无码免费 | 国精产品一品二品国精品69xx | 亚洲精品美女久久久久久久 | 色一情一乱一伦 | 国内精品人妻无码久久久影院 | 国产又爽又猛又粗的视频a片 | 午夜时刻免费入口 | 精品无码国产自产拍在线观看蜜 | 国产69精品久久久久app下载 | 国模大胆一区二区三区 | 欧美性猛交内射兽交老熟妇 | 国产午夜精品一区二区三区嫩草 | 牲交欧美兽交欧美 | 牲欲强的熟妇农村老妇女 | 大肉大捧一进一出好爽视频 | 2020久久香蕉国产线看观看 | 任你躁国产自任一区二区三区 | 麻豆成人精品国产免费 | 国产内射爽爽大片视频社区在线 | 伊人久久大香线焦av综合影院 | 成年美女黄网站色大免费视频 | 波多野结衣av一区二区全免费观看 | 丰满护士巨好爽好大乳 | 青草视频在线播放 | 国产午夜精品一区二区三区嫩草 | 无码国模国产在线观看 | 亚洲爆乳无码专区 | 日日碰狠狠丁香久燥 | 性生交大片免费看l | 国产精品自产拍在线观看 | 久久国产精品_国产精品 | 无码精品国产va在线观看dvd | 无码人妻av免费一区二区三区 | 熟女体下毛毛黑森林 | 久久精品中文闷骚内射 | 亚洲人成影院在线观看 | 日产精品99久久久久久 | 内射爽无广熟女亚洲 | 亚洲日韩一区二区 | 国产97人人超碰caoprom | аⅴ资源天堂资源库在线 | 日本肉体xxxx裸交 | 亚洲一区二区三区偷拍女厕 | 在教室伦流澡到高潮hnp视频 | 国产精品二区一区二区aⅴ污介绍 | 成 人 网 站国产免费观看 | 色欲久久久天天天综合网精品 | 日本又色又爽又黄的a片18禁 | 久久99精品久久久久久动态图 | 亚洲国产成人av在线观看 | 久久aⅴ免费观看 | 东京热男人av天堂 | 亚洲精品综合一区二区三区在线 | 免费人成网站视频在线观看 | 九月婷婷人人澡人人添人人爽 | 国产精品多人p群无码 | av无码久久久久不卡免费网站 | 永久免费观看国产裸体美女 | 亚洲の无码国产の无码影院 | 一本色道婷婷久久欧美 | 国产亚洲tv在线观看 | 狠狠噜狠狠狠狠丁香五月 | 欧美第一黄网免费网站 | 欧美怡红院免费全部视频 | 国产精品亚洲综合色区韩国 | 无码人妻精品一区二区三区不卡 | 免费看少妇作爱视频 | 国产av人人夜夜澡人人爽麻豆 | 精品人人妻人人澡人人爽人人 | 无码乱肉视频免费大全合集 | 国产乱人伦av在线无码 | 又粗又大又硬又长又爽 | 国产精品人人爽人人做我的可爱 | 成人精品视频一区二区 | 精品无码一区二区三区爱欲 | 乌克兰少妇性做爰 | 狠狠噜狠狠狠狠丁香五月 | 亚洲综合色区中文字幕 | 天天拍夜夜添久久精品大 | 国产9 9在线 | 中文 | 午夜理论片yy44880影院 | 国产成人久久精品流白浆 | 午夜理论片yy44880影院 | 扒开双腿疯狂进出爽爽爽视频 | 黑人巨大精品欧美黑寡妇 | 亚洲精品国产品国语在线观看 | 国产国语老龄妇女a片 | 亚洲中文字幕av在天堂 | 亚洲中文字幕乱码av波多ji | 99久久99久久免费精品蜜桃 | 欧美一区二区三区视频在线观看 | a在线亚洲男人的天堂 | 国产精品理论片在线观看 | 无码人妻久久一区二区三区不卡 | 男人的天堂av网站 | 国产做国产爱免费视频 | 国产后入清纯学生妹 | 精品日本一区二区三区在线观看 | 国内精品人妻无码久久久影院蜜桃 | 日本丰满熟妇videos | 欧美自拍另类欧美综合图片区 | 国产色精品久久人妻 | 偷窥日本少妇撒尿chinese | 亚洲精品久久久久中文第一幕 | 欧美日韩视频无码一区二区三 | 麻豆md0077饥渴少妇 | 亚洲男人av香蕉爽爽爽爽 | 国产亚洲人成a在线v网站 | 国产成人精品必看 | 天天摸天天透天天添 | 久久视频在线观看精品 |