精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關(guān)于Emacs中的變量你需要知道的事情

系統(tǒng) Linux
學(xué)習(xí) Elisp 是如何處理變量的,以及如何在你的腳本與配置中使用它們。GNU Emacs 是由 C 和 Emacs Lisp寫成,它是一個編輯器的同時,又碰巧是 Elisp 的沙盒。因此,理解 Elisp 中的一些基本編程概念會對你有一些幫助。

[[323916]]

學(xué)習(xí) Elisp 是如何處理變量的,以及如何在你的腳本與配置中使用它們。

GNU Emacs 是由 C 和 Emacs Lisp(Elisp,Lisp 編程語言的一種方言)寫成,它是一個編輯器的同時,又碰巧是 Elisp 的沙盒。因此,理解 Elisp 中的一些基本編程概念會對你有一些幫助。

如果你是 Emacs 新手,請先閱讀 Sacha Chua 的《給 Emacs 新手的資源》精品帖。本篇文章假定你熟悉常見的 Emacs 術(shù)語,并且能夠閱讀并求值 Elisp 代碼的簡單片段。最好你也聽說過變量作用域的概念,知道它在其它編程語言中的作用。本篇文章中的示例假定你使用的是相對較新的 Emacs 版本(v.25 之后的版本)。

Elisp 手冊 包含了 Elisp 的方方面面,但它是寫給那些有明確查找目標(biāo)的人們的(它在這方面也做得相當(dāng)棒)。但是很多人想要能夠在更高的層次上解釋 Elisp 概念的材料,同時將信息壓縮成最精華的部分。本篇文章也正是我回應(yīng)這種呼聲的一次嘗試,為讀者描繪基礎(chǔ)的大體輪廓。使他們能在配置中用上這些技巧,也讓他們在手冊中查詢細(xì)節(jié)變得更容易。

全局變量

defcustom 定義的用戶設(shè)置和用 defvardefconst 定義的變量是全局的。使用 defcustomdefvar 聲明變量的一個非常重要的原因是,當(dāng)一個變量已經(jīng)被綁定bind,對它們進(jìn)行重新求值不會覆蓋掉已有的值。舉個栗子,如果你在初始化文件中對 my-var 進(jìn)行如下綁定:

  1. (setq my-var nil)

對如下表達(dá)式求值不會將變量覆蓋為 t

  1. (defvar my-var t)

注意此處有一個例外:如果你用 C-M-x 快捷鍵對上述聲明求值,它將調(diào)用 eval-defun 函數(shù),并將變量覆蓋為 t。通過此方式,你可以按需將變量強(qiáng)制覆蓋。這種行為是刻意而為之的:你可能知道,Emacs 中的許多特性是按需加載的,也可以稱為自動加載。如果那些文件中的聲明將變量覆蓋為它們的默認(rèn)值,那它也就覆蓋了你初始化文件中的設(shè)置。

用戶選項(xiàng)

用戶選項(xiàng)就是使用 defcustom 聲明的全局變量。與使用 defvar 聲明的變量不同,這些變量可以用 M-x customize 界面來配置。據(jù)我所知,大部分人因?yàn)橛X得它開銷較大而不經(jīng)常使用。一旦你知道如何在你的初始化文件中設(shè)置變量,也就沒有理由一定要去使用它了。許多用戶沒有意識到的一個細(xì)節(jié)是,通過 customize 的方式設(shè)置用戶選項(xiàng)能夠執(zhí)行代碼,有的時間可用來運(yùn)行一些附加的配置說明:

  1. (defcustom my-option t
  2.   "My user option."
  3.   :set (lambda (sym val)
  4.          (set-default sym val)
  5.          (message "Set %s to %s" sym val)))

若你對這段代碼求值,并鍵入 M-x customize-option RET my-option RET 運(yùn)行 customize 界面,lambda 匿名函數(shù)就會被調(diào)用,回顯區(qū)域就會顯示出該選項(xiàng)的符號名與值。

如果你在初始化文件中使用 setq 改變該選項(xiàng)的值,那么匿名函數(shù)不會運(yùn)行。要想在 Elisp 中正確設(shè)置一個選項(xiàng),你需要使用函數(shù) customize-set-variable。或者,人們在他們的配置文件中使用了各種版本的 csetq 宏來自動處理(如你所愿,你可以通過 GitHub 的代碼搜索發(fā)現(xiàn)更復(fù)雜的變體)。

  1. (defmacro csetq (sym val)
  2.   `(funcall (or (get ',sym 'custom-set) 'set-default) ',sym ,val))

若你正在使用 use-package 宏,:custom 關(guān)鍵字會替你處理好以上這些。

在你將以上代碼放入到你的初始化文件中之后,你便可以使用 csetq 宏在設(shè)置變量的同時運(yùn)行任何現(xiàn)存的 setter 函數(shù)。要證明這點(diǎn),你可以使用此宏來改變上面定義的選項(xiàng),并觀察回顯區(qū)域的消息輸出。

  1. (csetq my-option nil)

動態(tài)綁定與詞法綁定

當(dāng)你在使用其它編程語言時,你可能不會意識到動態(tài)綁定與詞法綁定的區(qū)別。當(dāng)今的大部分編程語言使用詞法綁定,并且在學(xué)習(xí)變量作用域與變量查找時也沒有必要去了解它們之間的區(qū)別。

如此看來,Emacs Lisp 比較特殊因?yàn)閯討B(tài)綁定是默認(rèn)選項(xiàng),詞法綁定需要顯式啟用。這里有一些歷史遺留原因,但在實(shí)際使用中,你應(yīng)該時刻啟用詞法綁定,因?yàn)樗觳⑶也蝗菀壮鲥e。要啟用詞法綁定,只需將如下的注釋行作為你的 Emacs Lisp 文件的第一行:

  1. ;;; -*- lexical-binding: t; -*-

另一種方式,你可以調(diào)用 add-file-local-variable-prop-line,在你選擇將變量 lexical-binding 置為 t 后,會自動插入如上的注釋行。

在加載包含如上特殊格式行的文件時,Emacs 會相應(yīng)地設(shè)置變量,這意味著該緩沖區(qū)中的代碼加載時啟用了詞法綁定。若要采用交互式的方式,你可以調(diào)用 M-x eval-buffer 命令,它會將詞法綁定考慮在內(nèi)。

既然你已經(jīng)知道了如何啟用詞法綁定,那么了解這些術(shù)語的含義就很明智了。對于動態(tài)綁定,在程序執(zhí)行期間建立的最后一個綁定將用于變量查找。你可以通過將以下代碼放入空緩沖區(qū)并執(zhí)行 M-x eval buffer,以對此進(jìn)行測試:

  1. (defun a-exists-only-in-my-body (a)
  2.   (other-function))
  3.  
  4. (defun other-function ()
  5.   (message "I see `a', its value is %s" a))
  6.  
  7. (a-exists-only-in-my-body t)

你可能會很驚訝地發(fā)現(xiàn),在 other-function 中查找變量 a 竟然成功了。

若你在頂部添加了特殊的詞法綁定注釋后,重新運(yùn)行前面的示例,這段代碼將拋出 variable is void 錯誤,因?yàn)?other-functioin 無法識別變量 a。如果你使用的是其它編程語言,這才是你所期望的行為。

啟用詞法綁定后,作用域會由周圍的代碼所定義。這并不單單是性能原因,時間也已經(jīng)表明了詞法綁定才是更受喜愛的。

特殊變量與動態(tài)綁定

如你所知,let 用于臨時建立局部綁定:

  1. (let ((a "I'm a")
  2.       (b "I'm b"))
  3.   (message "Hello, %s. Hello %s" a b))

接下來有趣的是——使用 defcustomdefvar 以及 defconst 定義的變量被稱為特殊變量,不論詞法綁定是否啟用,它們都將使用動態(tài)綁定:

  1. ;;; -*- lexical-binding: t; -*-
  2.  
  3. (defun some-other-function ()
  4.   (message "I see `c', its value is: %s" c))
  5.  
  6. (defvar c t)
  7.  
  8. (let ((a "I'm lexically bound")
  9.       (c "I'm special and therefore dynamically bound"))
  10.   (some-other-function)
  11.   (message "I see `a', its values is: %s" a))

通過 C-h e 切換至 Messages 緩沖區(qū),查看上述示例輸出的消息。

使用 let 或者函數(shù)參數(shù)綁定的局部變量會遵循由 lexical-binding 變量定義的查找規(guī)則,但使用 defvardefconstdefcustom 定義的全局變量,能夠沿著調(diào)用棧在 let 表達(dá)式中被修改。

這種技巧允許方便地進(jìn)行特殊定制,并且經(jīng)常在 Emacs 中被使用。這并不奇怪,畢竟 Emacs Lisp 最開始只提供動態(tài)綁定作為唯一選擇。下面是一個常見的示例,說明如何向只讀緩沖區(qū)臨時寫入數(shù)據(jù):

  1. (let ((inhibit-read-only t))
  2.   (insert ...))

這是另一個常見的示例,如何進(jìn)行大小寫敏感的搜索:

  1. (let ((case-fold-search nil))
  2.   (some-function-which-uses-search ...))

動態(tài)綁定允許你采用作者未曾預(yù)料的方式對函數(shù)進(jìn)行修改。對于像 Emacs 這樣設(shè)計使用的程序來說,這是個強(qiáng)大的工具與特性。

有一點(diǎn)需要注意:你可能會意外地使用局部變量名,該變量在其他地方被聲明為特殊變量。防止這種沖突的一個技巧是避免在局部變量名中使用下劃線。在我當(dāng)前的 Emacs 會話中,以下代碼只留下少數(shù)潛在沖突的候選:

  1. (let ((vars ()))
  2. (mapatoms
  3. (lambda (cand)
  4. (when (and (boundp cand)
  5. (not (keywordp cand))
  6. (special-variable-p cand)
  7. (not (string-match "-"
  8. (symbol-name cand))))
  9. (push cand vars))))
  10. vars) ;; => (t obarray noninteractive debugger nil)

緩沖區(qū)局部變量

每個緩沖區(qū)都能夠擁有變量的一個局部綁定。這就意味著對于任何變量,都會首先在當(dāng)前緩沖區(qū)中查找緩沖區(qū)局部變量取代默認(rèn)值。局部變量是 Emacs 中一個非常重要的特性,比如它們被主模式用來建立緩沖區(qū)范圍內(nèi)的行為與設(shè)置。

事實(shí)上你已經(jīng)在本文中見過緩沖區(qū)局部變量——也就是將 lexical-binding 在緩沖區(qū)范圍內(nèi)設(shè)置為 t 的特殊注釋行。在 Emacs 中,在特殊注釋行中定義的緩沖區(qū)局部變量也被稱為文件局部變量

任何的全局變量都可以用緩沖區(qū)局部變量來遮掩,比如上面定義的變量 my-var,你可用如下方式設(shè)置局部變量:

  1. (setq-local my-var t)
  2. ;; or (set (make-local-variable 'my-var) t)

此時 my-var 對于你在對上述代碼進(jìn)行求值時對應(yīng)的緩沖區(qū)來說就是局部變量。若你對它調(diào)用 describe-variable,文檔會同時告訴你局部與全局的值。從編程的角度來講,你可以分別用 buffer-local-value 獲取局部值,用 default-value 獲取全局值。若要移除局部值,你可以調(diào)用 kill-local-variable

另一個需要注意的重要性質(zhì)就是,一旦一個變量成為緩沖區(qū)局部變量,后續(xù)在該緩沖區(qū)中使用的 setq 都將只能設(shè)置局部的值。要想設(shè)置默認(rèn)值,你需要使用 setq-default

因?yàn)榫植孔兞恳馕吨鴮彌_區(qū)的定制,它們也就經(jīng)常被用于模式鉤子中。一個典型的例子如下所示:

  1. (add-hook 'go-mode-hook
  2.           (defun go-setup+ ()
  3.             (setq-local compile-command
  4.               (if (string-suffix-p "_test.go" buffer-file-name)
  5.                   "go test -v"
  6.                 (format "go run %s"
  7.                         (shell-quote-argument
  8.                          (file-name-nondirectory buffer-file-name)))))))

這將設(shè)置 go-mode 緩沖區(qū)中 M-x compile 使用的編譯命令。

另一個重要的方面就是一些變量會自動成為緩沖區(qū)局部變量。這也就意味著當(dāng)你使用 setq 設(shè)置這樣一個變量時,它會針對當(dāng)前緩沖區(qū)設(shè)置局部綁定。這個特性不應(yīng)該被經(jīng)常使用,因?yàn)檫@種隱式的行為并不好。不過如果你想的話,你可以使用如下方法創(chuàng)建自動局部變量:

  1. (defvar-local my-automatical-local-var t)
  2. ;; or (make-variable-buffer-local 'my-automatical-local-var)

變量 indent-tabs-mode 就是 Emacs 內(nèi)建的一個例子。如果你在初始化文件中使用 setq 改變變量的值,根本不會影響默認(rèn)值。只有在你加載初始化文件時正處在當(dāng)前的緩沖區(qū)的局部值會被改變。因此,你需要使用 setq-default 來改變 indent-tabs-mode 的默認(rèn)值。

結(jié)語

Emacs 是一個強(qiáng)大的編輯器,并且隨著你的定制它將變得更加強(qiáng)大。現(xiàn)在,你知道了 Elisp 是如何處理變量的,以及你應(yīng)如何在你自己的腳本與配置中使用它們。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2013-12-02 14:07:02

Hadoop大數(shù)據(jù)集群

2017-02-09 14:46:25

Git事情

2024-06-04 16:51:11

2017-04-13 10:08:30

軟件開發(fā)開發(fā)

2013-09-12 11:24:24

創(chuàng)業(yè)

2023-01-20 11:51:40

性能測試系統(tǒng)

2023-08-16 15:57:53

2014-07-31 17:13:50

編碼程序員

2024-01-22 11:34:08

2015-06-30 10:59:22

MobileWeb適配

2023-02-10 08:44:05

KafkaLinkedIn模式

2023-01-30 11:43:04

開源代碼

2018-11-28 10:00:42

React組件前端

2022-08-27 12:15:51

Linux Mint操作系統(tǒng)

2022-10-09 09:57:39

物聯(lián)網(wǎng)IoT

2023-02-27 15:47:31

2023-10-12 07:06:32

2022-09-01 15:26:45

物聯(lián)網(wǎng)人工智能傳感器

2020-11-17 10:38:40

云計算工具技術(shù)

2020-05-07 10:14:00

企業(yè)架構(gòu)師CIOIT網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

97精品国产aⅴ7777| 日本黄视频在线观看| 欧美高清视频| 西瓜成人精品人成网站| 国内久久婷婷综合| 亚洲毛片在线看| 超碰成人免费在线| 国产一区二区三区视频免费观看 | 真实原创一区二区影院| 一区二区在线观看不卡| 国产精品久久久久久久7电影| 亚洲av成人片色在线观看高潮| 成a人片在线观看| 麻豆一区二区99久久久久| 亚洲精品一区中文字幕乱码| 日本福利视频在线| 日本精品一二区| 麻豆久久一区二区| 6080yy精品一区二区三区| 亚洲高清无码久久| av影视在线| 99免费精品视频| 欧美亚洲视频在线看网址| 国产ts丝袜人妖系列视频| 无遮挡爽大片在线观看视频| 97国产精品videossex| 911国产网站尤物在线观看| 激情五月激情综合| 国产精品一站二站| 一区二区三区在线免费| 午夜精品美女久久久久av福利| 成年人视频免费| 日韩av片子| 91精品国产品国语在线不卡| 久久久国内精品| 天堂av一区二区三区| 国产视频一区在线观看一区免费| 亚洲男人的天堂网站| 美女日批在线观看| 阿v视频在线| 久久一区二区三区国产精品| 国产成人亚洲综合91| youjizz亚洲女人| vam成人资源在线观看| 亚洲精品国产a久久久久久| 日韩中文字幕av在线| 91麻豆一区二区| 久热国产精品| 日韩亚洲在线观看| 欧美午夜精品一区二区| 亚洲优女在线| 精品久久久久久| 亚洲v欧美v另类v综合v日韩v| 色鬼7777久久| 久久99在线观看| 国内成人精品一区| 亚洲精品色午夜无码专区日韩| 精品日韩视频| 亚洲一区二区在线观看视频| 欧美精品人人做人人爱视频| 国产露脸无套对白在线播放| 亚洲精品社区| 在线播放国产精品| 日批免费观看视频| 国产极品久久久久久久久波多结野| 亚洲欧美偷拍另类a∨色屁股| 国产欧美在线一区二区| 在线观看国产黄| 国产精品12345| 国产一区二区在线不卡| 久久成人综合网| 成人午夜激情免费视频| 美女毛片在线观看| 久久综合色占| 日韩一级二级三级| 国产v亚洲v天堂无码久久久 | 超碰中文字幕在线| 国产成人1区| 一本一道久久a久久精品综合蜜臀| 午夜精品亚洲一区二区三区嫩草| 同心难改在线观看| 国产精品一区二区视频| 国产精品a久久久久久| 成人免费一级片| 国模一区二区三区白浆| av资源一区二区| 中文字幕理论片| 国产精品久久久久久久免费软件| 欧美综合激情网| 18岁成人毛片| 成人国产精品久久| 国内精品久久久久久久久久| 成人黄色生活片| 特黄视频免费观看| 国产麻豆剧传媒精品国产av| 福利成人导航| 国产精品全国免费观看高清| 欧美极品色图| 永久av在线| 久久久久久久综合| 国产欧美日韩在线播放| 久久精品蜜桃| 91麻豆福利精品推荐| 国产aⅴ精品一区二区三区黄| 97精品人妻一区二区三区| 国产91综合网| 成人在线观看91| 九色在线免费| 亚洲综合成人网| 国产人妻人伦精品| 免费网站成人| 黑人巨大精品欧美一区二区免费| 久久久性生活视频| 免费欧美电影| 精品999在线播放| 国产黑丝在线观看| 水蜜桃久久夜色精品一区| 亚洲最新av网址| 久久国产精品波多野结衣| 日韩经典一区二区| 国产精品成人一区二区| 亚洲精品福利网站| 成人毛片老司机大片| 电影午夜精品一区二区三区 | 久久精品久久99精品久久| 国产91精品入口17c| 免费观看久久久久| 91福利视频久久久久| 黑森林福利视频导航| 成人爽a毛片免费啪啪| 欧美性少妇18aaaa视频| 日批视频在线免费看| 欧美.com| 欧美精品一区二区久久久| 亚洲精品乱码久久久久久蜜桃图片| www.日韩高清| 久久美女性网| 美女高潮久久久| 日韩亚洲一区二区| 日韩av女优在线观看| 国产一区不卡| 亚州欧美日韩中文视频| 国产av精国产传媒| 中文字幕一区二区三区不卡在线| 香蕉精品视频在线| av香蕉成人| 欧美日韩精品系列| 亚洲综合中文网| 亚洲草久电影| 国内精品久久久久久中文字幕| 国产欧美久久久精品免费| 成人深夜在线观看| 丁香色欲久久久久久综合网| 天堂av在线网| 亚洲美女精品久久| 亚洲精品中文字幕乱码三区91| 秋霞成人午夜伦在线观看| 91丨九色丨国产在线| 天天操天天插天天射| 亚洲国产精品视频| 亚洲欧美国产中文| 国产一区二区三区亚洲| 亚洲最新av在线网站| 国产又粗又猛又爽又| 国产三区在线成人av| 男人j进女人j| 欧美欧美在线| 国模极品一区二区三区| 男女av在线| 亚洲人成精品久久久久久| 中文字幕国产高清| 欧美日韩在线大尺度| 日韩av手机在线观看| 国产精品一级二级| 亚洲精品欧美在线| 天堂社区在线视频| 激情av综合| 中文字幕在线观看亚洲| 波多野结衣视频网站| 国产日韩欧美综合在线| 午夜啪啪小视频| 国产伊人精品| 国产美女主播一区| 欧美777四色影视在线| 欧美在线观看视频一区二区| 亚洲黄色免费在线观看| 日韩专区中文字幕一区二区| 中文字幕一区二区三区最新| 国产精品qvod| 国产精品福利网站| 四虎亚洲成人| 日韩一区和二区| 精品久久免费视频| 国产亚洲精品久| 巨乳女教师的诱惑| 老司机免费视频久久| 色乱码一区二区三区熟女| 日韩欧美看国产| 亚洲国产91色在线| 久久精品第一页| 久久婷婷色综合| 一本之道在线视频| 亚洲精品成人| 乱色588欧美| 松下纱荣子在线观看| www.日韩欧美| 欧美人体大胆444www| 日韩一区二区三区在线视频| 秋霞精品一区二区三区| 一区二区三区欧美在线观看| 久久久久久国产免费a片| 青娱乐精品视频| 免费影院在线观看一区| 国产亚洲欧美精品久久久久久| 国产欧美亚洲一区| 曰韩不卡视频| 亚洲亚洲免费| 国产精品我不卡| 中国av在线播放| 制服丝袜亚洲播放| 影音先锋男人看片资源| 蜜桃精品视频在线观看| 在线免费观看成人| 亚洲制服欧美另类| 成人av男人的天堂| 亚洲网站三级| 国产精品免费久久久久影院| 日韩欧美小视频| 亚洲精品资源美女情侣酒店| 成人免费公开视频| 婷婷亚洲久悠悠色悠在线播放| 免费黄色国产视频| 国产三级三级三级精品8ⅰ区| 好男人香蕉影院| 国产精品1区2区| 国产毛片视频网站| 亚洲精品国产动漫| 国产偷国产偷亚洲高清97cao| 日韩亚洲国产免费| 欧美大学生性色视频| 欧美一级淫片免费视频魅影视频| 欧美丰满嫩嫩电影| 国产在线观看免费av| 93久久精品日日躁夜夜躁欧美| 亚洲AV无码久久精品国产一区| 麻豆精品新av中文字幕| 在线观看av日韩| 日韩不卡在线观看日韩不卡视频| 久久无码高潮喷水| 日韩久久精品| 亚洲精品成人久久久998| 一区二区中文字幕在线观看| 欧美综合第一页| 免费日韩电影| 国产成人欧美在线观看| 高清在线一区| 国内精品视频一区| h片精品在线观看| 97碰在线观看| 9i看片成人免费高清| 人人澡人人澡人人看欧美| 婷婷综合六月| 国产精品久久网| a一区二区三区亚洲| 91入口在线观看| 欧美日韩大片| 国产成人精品综合久久久| 国产69精品久久| 亚洲综合自拍一区| 播放一区二区| 国产精品视频26uuu| 96视频在线观看欧美| 亚洲综合大片69999| 伦理一区二区三区| 日本日本精品二区免费| 91精品国产自产精品男人的天堂| av激情久久| 亚洲精品播放| aaa免费在线观看| 国语对白精品一区二区| 成年人观看网站| 麻豆国产精品官网| 国产免费a级片| www国产成人| 久久噜噜色综合一区二区| 2020日本不卡一区二区视频| japanese中文字幕| 亚洲视频 欧洲视频| 欧美三级午夜理伦| 亚洲福利视频一区二区| 依依成人综合网| 欧美日韩一级片在线观看| 激情视频网站在线观看| 欧美日韩一区三区四区| 亚洲av无码专区在线| 亚洲男人天堂2019| 成人免费网址| 国产97在线|日韩| 精品一区二区三区中文字幕视频| 快播日韩欧美| 欧美激情aⅴ一区二区三区| 国产精品美女在线播放| 亚洲日韩视频| 国产3p在线播放| 久久99精品久久久久婷婷| 午夜免费福利影院| 国产精品久久久久久久久晋中| 久草视频精品在线| 欧美精品第1页| 久草在线青青草| 久久久久久久久久国产| 中文字幕伦理免费在线视频 | 日韩一区二区三区精品视频| 日韩三级电影网| 欧美激情亚洲精品| 国产精品久久久久久久久免费高清 | 亚洲free性xxxx护士hd| 免费看av成人| 777av视频| 国产综合色产在线精品| 制服丝袜中文字幕第一页 | 欧美日韩亚洲一区二区三区在线观看 | www.欧美.com| avtt天堂在线| 777奇米四色成人影色区| 国产在线观看免费| 2020久久国产精品| 国产成人福利av| 青青草视频国产| 国产一区在线看| 日韩在线一卡二卡| 欧美日韩免费一区二区三区| 精品美女视频在线观看免费软件 | 精品国产亚洲日本| 亚洲砖区区免费| 91精品91| 国产三级生活片| 亚洲欧洲日产国码二区| 九九视频在线免费观看| 欧美疯狂做受xxxx富婆| 色的视频在线免费看| 国产精品日韩av| 大色综合视频网站在线播放| 国产高清免费在线| 免费看黄色91| 日韩欧美视频免费观看| 欧美日韩中文字幕精品| av基地在线| 高清视频欧美一级| 1769国产精品视频| 黄色大片中文字幕| www激情久久| 久久国产乱子伦精品| 日韩午夜激情电影| 26uuu亚洲电影在线观看| 97在线电影| 在线成人h网| 亚洲欧美手机在线| 亚洲欧美电影一区二区| 精品人妻一区二区三区三区四区| 欧美日韩成人黄色| 欧美日韩五码| 日韩色妇久久av| 激情文学综合丁香| 青青草原免费观看| 亚洲精品国产精品久久清纯直播| 深夜福利在线观看直播| 欧美孕妇性xx| 欧美一区二区三| 午夜福利123| 久久久久亚洲综合| 91丨九色丨海角社区| 久久激情视频免费观看| 另类专区亚洲| 亚洲精品高清国产一线久久| 国产一区二区三区观看| 久草成人在线视频| 日韩高清免费观看| 在线看一级片| 精品久久精品久久| 欧美午夜免费影院| 少妇精品一区二区| 欧美午夜精品久久久久久超碰| 黄a在线观看| 国产日韩精品在线| 九热爱视频精品视频| 岛国毛片在线播放| 亚洲高清三级视频| 国产片在线观看| 欧美综合在线第二页| 日韩欧美看国产| 偷窥国产亚洲免费视频| 日本一道本久久| 91精品一区国产高清在线gif| 亚洲一二三四五| 欧美色欧美亚洲另类二区| 不卡一本毛片| 中文一区一区三区免费| 99re这里只有精品首页| 国产日韩欧美视频在线观看|