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

經驗總結:實用的Emacs配置文件搜羅

開發 項目管理
以下的Emacs配置文件是我多年積累起來的,它們在我歷次整理配置文件(.emacs)的過程中幸存了下來,經過了時間考驗,所以現在我決定發出 來和大家分享一下。雖然某些功能很有可能已經有更好的實現方法了,但是這些例子對讀者學習emacs lisp還是會有幫助的。

以下的Emacs配置文件是我多年積累起來的,它們在我歷次整理配置文件(.emacs)的過程中幸存了下來,經過了時間考驗,所以現在我決定發出 來和大家分享一下。雖然某些功能很有可能已經有更好的實現方法了,但是這些例子對讀者學習emacs lisp還是會有幫助的。

在一些文本的末尾添加遞增的數字

inc-num-region把一段文本中重復出現的數字替換成遞增的數字

  1. (defun inc-num-region (p m) 
  2.   "Increments the numbers in a given region" 
  3.   (interactive "r") 
  4.   (save-restriction 
  5.     (save-excursion 
  6.       (narrow-to-region p m)    
  7.       (goto-char (point-min))   
  8.       (forward-line) 
  9.       (let ((counter 1)) 
  10.         (while (not (eq (point) 
  11.                         (point-max))) 
  12.           (goto-char (point-at-eol)) 
  13.           (search-backward-regexp "[0-9]+" (point-at-bol) t) 
  14.           (let* ((this-num (string-to-number (match-string 0))) 
  15.                  (new-num-str (number-to-string (+ this-num 
  16.                                                    counter)))) 
  17.             (replace-match new-num-str) 
  18.             (incf counter) 
  19.             (forward-line))))))) 

比如在emacs選中如下的文本區域

  1. 1foo 
  2. 1foo 
  3. 1foo 
  4. 1foo 

執行該函數,那么上述文本在緩沖區中變成

  1. 1foo 
  2. 2foo 
  3. 3foo 
  4. 4foo 

再比如選中如下的文本區域

  1. foo3 
  2.  foo3 
  3.  foo3 
  4.  foo3 

執行給函數,得到

  1. foo3 
  2. foo4 
  3. foo5 
  4. foo6 

給代碼做筆記

在我們公司使用reviewboard之前,代碼審查都是面對面進行的。我曾經使用下面這個函數來幫助記錄意見所對應的源文件和行號。

  1. defun add-code-review-note () 
  2.    "Add note for current file and line number" 
  3.    (interactive) 
  4.    (let ((file-name (buffer-file-name)) 
  5.          (file-line (line-number-at-pos))) 
  6.      (switch-to-buffer-other-window (get-buffer-create "NOTES")) 
  7.      (goto-char (point-min)) 
  8.      (when (not (search-forward "-*- mode:compilation-shell-minor" 
  9.                                 nil t)) 
  10.        (compilation-shell-minor-mode 1) 
  11.        (insert "-*- mode:compilation-shell-minor -*-\n\n")) 
  12.      (goto-char (point-max)) 
  13.      (if (/= (current-column) 0) 
  14.          (newline)) 
  15.      (insert file-name ":" (number-to-string file-line) ": "))) 

使用方法是,光標停在源代碼的需要做批注的位置,然后執行該函數,emacs會創建一個新的叫做NOTES的緩沖區,其中記錄源代碼的路徑和光標所在的行 號,用戶在接下來的區域中輸入筆記。這個函數的好處是,該新建的buffer的工作模式是compilation-shell-minor-mode。所 以可以直接點擊其路徑和行號,就可以直接打源文件跳到相應的行上去。比如

  1. #include 
  2.   
  3.  int main() 
  4.  { 
  5.    std::cout << "Hello Word!" << std::endl;  //光標停在這里 
  6.    return 0; 
  7.  } 

執行該函數,在新buffer中得到如下內容,在compilation-shell-minor-mode模式下,筆記前面的內容將呈現出一個鏈接,可以點擊直接打開main.cpp

  1. /home/iamxuxiao/main.cpp:5: miss spelling "word" 

在我的.emacs中,我把這個函數和C-c、r做了綁定

自動給C代碼頭文件的首位添加ifndef和endif

get-include-guard函數在我們要編輯一個新頭文件時,自動給文件添加上預處理指示符:ifndef和endif

  1. defun get-include-guard () 
  2.    "Return a string suitable for use in a C/C++ include guard" 
  3.    (let* ((fname (buffer-file-name (current-buffer))) 
  4.           (fbasename (replace-regexp-in-string ".*/" "" fname)) 
  5.           (inc-guard-base (replace-regexp-in-string "[.-]" 
  6.                                                     "_" 
  7.                                                     fbasename))) 
  8.      (concat (upcase inc-guard-base) "_"))) 
  9.   
  10.  (add-hook 'find-file-not-found-hooks 
  11.            '(lambda () 
  12.               (let ((file-name (buffer-file-name (current-buffer)))) 
  13.                 (when (string".h" (substring file-name -2)) 
  14.                   (let ((include-guard (get-include-guard))) 
  15.                     (insert "#ifndef " include-guard) 
  16.                     (newline) 
  17.                     (insert "#define " include-guard) 
  18.                     (newline 4) 
  19.                     (insert "#endif") 
  20.                     (newline) 
  21.                     (previous-line 3) 
  22.                     (set-buffer-modified-p nil)))))) 

如果我們在emacs中要新建一個文件foo.h(C-x,C-f foo.h),emacs新創建的foo.h緩沖區中看上去將是這樣的

  1. #ifndef FOO_H_ 
  2.  #define FOO_H_ 
  3.   
  4.  #endif 

在foo.cpp和foo.h之間自動的切換

如果一個文件夾中同時含有foo.h和foo.cpp兩個文件的話,下面的函數幫助你在這兩個文件之間切換

  1. (defun next-file-with-basename () 
  2.  "Cycles between files with the same basename as the given file. 
  3.   Usefull for cycling between header .h/.cpp/.hpp files etc." 
  4.  (interactive) 
  5.  (let* ((buf-file-name (replace-regexp-in-string 
  6.                         "^.*/" "" 
  7.                         (buffer-file-name))) 
  8.         (current-dir (replace-regexp-in-string 
  9.                       "[a-zA-Z0-9._-]+$" "" 
  10.                       (buffer-file-name))) 
  11.         (no-basename (equal ?. (aref buf-file-name 0))) 
  12.         (has-extension (find ?. buf-file-name))) 
  13.    ;; If the file is a .dot-file or it doesn't have an 
  14.    ;; extension, then there's nothing to do here. 
  15.    (unless (or no-basename (not has-extension)) 
  16.      (let* ((basename (replace-regexp-in-string 
  17.                        "\\..*" "" 
  18.                        buf-file-name)) 
  19.             (files-with-basename (directory-files 
  20.                                   current-dir f 
  21.                                   (concat "^" basename "\\.")))) 
  22.        ;; If there's only 1 file with this basename, nothing to 
  23.        ;; do 
  24.        (unless (= (length files-with-basename) 1) 
  25.          ;; By making the list circular, we're guaranteed that 
  26.          ;; there will always be a next list element (ie. no 
  27.          ;; need for special case when file is at the end of 
  28.          ;; the list). 
  29.          (setf (cdr (last files-with-basename)) 
  30.                files-with-basename) 
  31.          (find-file (cadr (member (buffer-file-name) 
  32.                                   files-with-basename)))))))) 

在我的.emacs中,我把這個函數和C-c,n做了綁定

注:Reddit網友提出ff-find-other-file實現了非常類似的功能

c-macro模板

我們在寫C++代碼的時候,經常要鍵入一些重復的操作,比如歷遍容器,try catch等等。而這些代碼的特點,可以歸結成一個不變的模板+幾個變化參數,下面的emacs函數自動幫你擴展這個模板,打印代碼。

我們先描述該函數的效果,在C++代碼中插入如下待擴展的句子

  1. (doit std::vector myContainer) 

然后在該行的末尾執行我們的函數,該行被自動替換成如下的C++代碼

  1. for (std::vector::iterator it = myContainer.begin(); 
  2.      it != myContainer.end(); 
  3.      ++it) 
  4.    // 光標將停在這里 等待具體的編輯  

該c-macro還可以接受變長參數,比如下面的模板接受兩個參數

  1. (doit std::vector myIt myContainer) 

生成的代碼如下:

  1. for (std::vector::iterator myIt = myContainer.begin(); 
  2.       myIt != myContainer.end(); 
  3.       ++myIt) 
  4.  { 
  5.     // 光標將停在這里 等待具體的編輯 
  6.  } 

下面的macro將幫助用戶自己打印try catch block

  1. (api-fn) 

擴展之后將變成

  1. try 
  2.     // 光標將停在這里 等待具體的編輯 
  3. catch(const std::exception& e) 
  4.    TRACE("Unhandled exception in function %s: %s\n", 
  5.          __func__, e.what()); 
  6.    return -1; 

下面的j-newline-and-indent是以上功能的入口函數,其將尋找光標前是否出現已定義的c-macro.在上面的例子中就是doit和api-fn。
如果出現了macro就做擴展,如果沒有出現,j-newline-and-indent等于內置的newline-and-indent函數:加入新行,并且indent

  1. (defun j-newline-and-indent () 
  2.    "Same as \"newline-and-indent\" except it also expands 
  3.     c-macros if it sees one." 
  4.    (interactive) 
  5.    (if (and (equal (char-before) ?\)) 
  6.             (macro-function (car (preceding-sexp)))) 
  7.        ;; This is a c-macro 
  8.        (expand-c-macro-in-place) 
  9.      (newline-and-indent))) 
  10.   
  11.  (defun macro-function (name) 
  12.    "Given a name, returns the c-macro-name symbol if it 
  13.     exists as a function" 
  14.    (let ((macro-sym (intern (concat "c-macro-" 
  15.                                     (symbol-name name))))) 
  16.      (if (fboundp macro-sym) 
  17.          macro-sym 
  18.        nil))) 
  19.   
  20.  (defun expand-c-macro-in-place () 
  21.    "Given that point is at the end of a c-macro, expands 
  22.     it in-place" 
  23.    (let* ((sexp (preceding-sexp)) 
  24.           (macro-name (car sexp)) 
  25.           (replacement-text (apply (macro-function macro-name) 
  26.                                    (cdr sexp))) 
  27.           (jump-to (string-match "!!!BODY!!!;" replacement-text))) 
  28.      ;; Delete macro invocation 
  29.      (backward-list) 
  30.      (let ((start-del (point))) 
  31.        (forward-list) 
  32.        (kill-region start-del (point)) 
  33.   
  34.       ;; Insert macro expansion and indent appropriately 
  35.       (insert replacement-text) 
  36.       (indent-region start-del (point)) 
  37.       (when jump-to 
  38.         (search-backward "!!!BODY!!!;") 
  39.         (kill-line)))) 
  40.   (c-indent-command)) 
  41.  
  42. 下面是自定義的兩個模板c-macro,讀者可以根據需要定義自己的macro 
  43. 10 
  44. 11 
  45. 12 
  46. 13 
  47. 14 
  48. 15 
  49. 16 
  50. 17 
  51. 18 
  52. 19 
  53. 20 
  54. 21 
  55. 22 
  56. 23 
  57. 24 
  58. 25 
  59. 26 
  60. 27 
  61. 28 
  62. 29 
  63.      
  64. (defun c-macro-doit (container-type arg1 &optional arg2) 
  65.    "Emits code for iterating over an stl (or stl-like) structure" 
  66.    (let ((iterator-name  (if arg2 arg1 "it")) 
  67.          (container-name (if arg2 arg2 arg1))) 
  68.      (format (concat "for (%s::iterator %s = %s.begin();\n" 
  69.                      "     %s != %s.end();\n" 
  70.                      "     ++%s)\n" 
  71.                      "{\n" 
  72.                      "   !!!BODY!!!;\n" 
  73.                      "}\n") 
  74.              container-type 
  75.              iterator-name 
  76.              container-name 
  77.              iterator-name 
  78.              container-name 
  79.              iterator-name))) 
  80.   
  81.  (defun c-macro-api-fn () 
  82.    "Emits code for wrapping an api function in a try/catch block" 
  83.    (concat "try\n" 
  84.            "{\n" 
  85.            "   !!!BODY!!!;\n" 
  86.            "}\n" 
  87.            "catch(const std::exception& e)\n" 
  88.            "{\n" 
  89.            "   TRACE(\"Unhandled exception in function %s: %s\\n\",\n" 
  90.            "         __func__, e.what());\n" 
  91.            "   return -1;\n" 
  92.            "}\n")) 

原文鏈接:http://blog.jobbole.com/47027/

責任編輯:陳四芳 來源: 伯樂在線
相關推薦

2009-10-15 09:27:00

2009-08-17 14:45:18

VMware虛擬機實用

2010-01-19 18:52:08

VB.NET處理數據行

2010-07-13 16:07:18

Perl

2011-07-21 13:40:17

java

2009-11-16 10:57:51

PHP上傳文件代碼

2009-09-29 16:32:11

OJB Hiberna

2009-08-19 09:24:43

AJAX引擎經驗總結

2009-09-16 17:13:54

學習Linq

2010-04-21 14:53:46

Oracle游標

2010-05-19 17:24:55

MySQL編碼

2010-03-23 11:39:49

云計算

2010-03-25 13:42:14

云計算

2010-04-28 10:45:24

Oracle10g

2010-01-18 16:49:36

VB.NET基本數據類

2009-12-15 17:10:26

路由器配置

2009-09-25 17:26:55

使用Hibernate

2009-09-27 14:53:38

Hibernate S

2010-01-27 18:12:14

Android dia

2010-01-26 13:28:11

Android開發要點
點贊
收藏

51CTO技術棧公眾號

久热这里只有精品在线| 香蕉视频污视频| 在线免费观看黄色网址| 久久av中文字幕片| 色中色综合影院手机版在线观看 | 国产69精品久久777的优势| 久久男人的天堂| av免费播放网站| 69精品国产久热在线观看| 色婷婷综合久久| 成人在线观看毛片| аⅴ资源新版在线天堂| 国产 日韩 欧美大片| 国产成人精品视频在线观看| 久久97人妻无码一区二区三区| 九九久久婷婷| 精品国产精品网麻豆系列| 中文字幕国产传媒| 狠狠操一区二区三区| 中文字幕综合网| 日本一区二区三区视频免费看 | 国产69精品一区二区亚洲孕妇| 日韩av电影在线网| 国产一级二级三级| 国产韩国精品一区二区三区| 精品亚洲国产成av人片传媒 | 在线观看免费视频a| 日韩午夜一区| 久久99精品视频一区97| 战狼4完整免费观看在线播放版| 久久99精品久久久久久欧洲站| 欧美日韩精品欧美日韩精品一| 黄色免费视频大全| a级片免费在线观看| 亚洲乱码国产乱码精品精98午夜| 视频在线99| 欧美女同网站| 26uuu色噜噜精品一区二区| 97超级碰碰| 99久久精品日本一区二区免费 | 国产高清一区在线观看| 99热在这里有精品免费| 国产精品国产精品国产专区不卡| 国产精品爽爽久久| 日本不卡123| 国产精品对白刺激| 无码人妻久久一区二区三区| 国产女优一区| 91精品国产99| 久久国产视频精品| 国产精品丝袜xxxxxxx| 韩国三级日本三级少妇99| 久久久久人妻一区精品色欧美| 欧美一区成人| 久久免费视频网| 国产在线欧美在线| 国产精品久久国产愉拍| 911国产网站尤物在线观看| 日韩免费视频网站| 国产欧美日本| 国产成人+综合亚洲+天堂| 久久久久在线视频| 日韩国产一区二| 国产精品稀缺呦系列在线| 91亚洲精品国偷拍自产在线观看| 久久国产精品色婷婷| 91九色在线视频| 精品人妻aV中文字幕乱码色欲| 国产成人精品aa毛片| 国产精品视频一区二区三区经| 色呦呦免费观看| 久久嫩草精品久久久精品一| 亚洲高清乱码| 18视频在线观看| 欧美日韩国产综合新一区| 欧美激情国产精品日韩| 欧美日韩精品免费观看视欧美高清免费大片| 色婷婷精品大在线视频| 亚洲国产成人va在线观看麻豆| **国产精品| 欧美videos大乳护士334| 无码一区二区精品| 不卡中文字幕| 欧美黑人性视频| 在线观看日韩中文字幕| 另类综合日韩欧美亚洲| 成人三级视频在线观看一区二区| 四虎精品成人免费网站| 国产欧美精品区一区二区三区 | 五月天丁香综合久久国产| 麻豆影院在线观看| 亚洲一区二区三区四区在线| 国产日韩一区二区在线观看| 日韩专区视频| 日韩成人在线视频观看| 国产精品麻豆免费版现看视频| 黄色亚洲在线| 国产一区二区色| 无码国产伦一区二区三区视频 | 老子影院午夜伦不卡大全| 全亚洲第一av番号网站| 欧美一级艳片视频免费观看| 成人h动漫精品一区| 天堂美国久久| 日韩av手机在线看| 亚洲欧美强伦一区二区| 中文字幕免费一区| 男人的天堂狠狠干| 亚洲人成777| 亚洲欧美999| 免费人成视频在线| 日本不卡在线视频| 久久精品综合一区| 七七久久电影网| 欧美亚洲动漫制服丝袜| 国产ts丝袜人妖系列视频| 91tv精品福利国产在线观看| 日韩**中文字幕毛片| 亚洲精品久久久久avwww潮水| 欧美—级在线免费片| 国产亚洲欧美在线视频| 亚洲欧洲国产精品一区| 俺去啦;欧美日韩| 国产一区免费看| 99国内精品久久| 800av在线免费观看| 999久久久国产999久久久| 国产亚洲欧洲黄色| 久久久久久91亚洲精品中文字幕| 成人高清免费观看| 国产精品视频网站在线观看 | 男人的天堂亚洲一区| 久久久久久久久久久久久久久久av| a级网站在线播放| 欧美日韩免费高清一区色橹橹| 性欧美一区二区| 午夜影院日韩| 老牛影视免费一区二区| 精品众筹模特私拍视频| 91精品国产一区二区| 午夜精品一区二区三级视频| 久久99精品久久久久久国产越南| 日韩精品第一页| 精品裸体bbb| 国产一区二区精品丝袜| 亚洲高清视频免费观看| 中文字幕免费不卡| 超碰超碰在线观看| 日韩三级在线| 成人午夜在线观看| 18视频在线观看| 亚洲成av人乱码色午夜| 日本三级黄色大片| 91天堂素人约啪| 免费看a级黄色片| 色婷婷亚洲mv天堂mv在影片| 成人妇女淫片aaaa视频| 自拍亚洲图区| 亚洲国产97在线精品一区| 五月天婷婷久久| 久久亚洲二区三区| 日韩av手机版| 中国成人一区| 国产精品有限公司| 最新日韩精品| 最好看的2019的中文字幕视频| 一区二区三区播放| 一区二区三区国产精品| 你懂的在线观看网站| 久久一日本道色综合久久| 日韩欧美一区二区三区四区| 久久精品黄色| 欧美激情在线有限公司| 国产在线视频网站| 欧美久久一二区| 久久精品视频日本| 国产亚洲精品bt天堂精选| 中文字幕22页| 伊人久久亚洲美女图片| 欧美日韩三区四区| 二区三区精品| 奇米4444一区二区三区| 日本美女高清在线观看免费| 精品国产一二三| 亚洲男人天堂网址| 一区二区三区四区视频精品免费 | 日本黄色三级网站| 国产情侣一区| 日韩人妻精品一区二区三区| 欧美一区二区三区红桃小说| 国产精品视频免费在线观看| 免费网站在线观看人| 亚洲色图35p| 精品免费久久久| 欧美日韩一区不卡| 亚州国产精品视频| 亚洲欧美偷拍三级| a级片在线观看| 丁香啪啪综合成人亚洲小说| 一区二区三区韩国| 在线亚洲激情| 日本黄大片在线观看| 成人同人动漫免费观看| 国产亚洲精品美女久久久m| 亚洲一区二区三区久久久| 欧美在线一区二区三区四| 超碰在线caoporen| 正在播放欧美一区| 亚洲 欧美 激情 小说 另类| 欧美一级精品大片| 日韩xxx视频| 欧美日韩在线视频观看| 欧美久久久久久久久久久久| 国产精品看片你懂得| 中国毛片在线观看| 成人精品视频网站| 日本55丰满熟妇厨房伦| 美女脱光内衣内裤视频久久网站| 99精品在线免费视频| 狠狠综合久久av一区二区老牛| 午夜啪啪福利视频| 99精品在线| 亚洲国产精品一区在线观看不卡| 日本三级久久| 精品国产第一页| 9l亚洲国产成人精品一区二三| 成人久久久久久| 国产精品伦一区二区| 国产精品久久网| 成人性生活av| 日本久久久久久| 色资源二区在线视频| 亚州精品天堂中文字幕| av成人福利| 77777少妇光屁股久久一区| 欧美寡妇性猛交xxx免费| 欧美成人精品三级在线观看| 精品欧美色视频网站在线观看| 伊人亚洲福利一区二区三区| 国产黄在线看| 丝袜美腿精品国产二区| 在线播放麻豆| www.亚洲人.com| 久cao在线| 久久成人av网站| 精品国产白色丝袜高跟鞋| 另类图片亚洲另类| 欧美xxxx免费虐| 91精品国产高清| 欧美gay囗交囗交| 国产精品精品视频一区二区三区| 青青热久免费精品视频在线18| 国产精品99导航| 日本成人一区二区| 成人日韩av在线| 视频一区在线| 久久av一区二区三区漫画| 午夜先锋成人动漫在线| 日本最新一区二区三区视频观看| 日韩欧美网址| 日韩成人手机在线| 亚洲视频成人| 天天干天天爽天天射| 国产精品一二三在| 中文字幕一区二区三区乱码不卡| av成人老司机| 在线观看免费黄色网址| 亚洲三级免费观看| 色欲人妻综合网| 亚洲成人午夜电影| 激情网站在线观看| 在线综合视频播放| 日本加勒比一区| 伊人久久男人天堂| 性欧美videoshd高清| 欧美中文字幕第一页| 欧美激情三区| 国产一级特黄a大片99| 欧美综合一区| www.成年人视频| 奇米精品一区二区三区在线观看一| 亚洲图片 自拍偷拍| av亚洲精华国产精华| 亚洲女人毛茸茸高潮| 亚洲不卡一区二区三区| 最新中文字幕第一页| 精品99一区二区三区| av二区在线| 97久久超碰福利国产精品…| 成人午夜在线| 精品欧美一区二区久久久伦| 成人羞羞网站入口免费| 成人免费a级片| 久久精品久久99精品久久| 国产精品一区二区人妻喷水| 国产精品毛片高清在线完整版 | 性伦欧美刺激片在线观看| 污污网站免费观看| 97超碰欧美中文字幕| 国产精品三区在线观看| 色综合中文综合网| 亚洲精品成人电影| 中文字幕在线看视频国产欧美| 久久不射影院| 91久久精品国产91久久性色| 国产成人高清| 激情深爱综合网| 国产精品99久久久| 欧美自拍偷拍网| 欧美日韩日本国产| 成人久久久精品国产乱码一区二区| 国产一区二区美女视频| 小草在线视频免费播放| dy888夜精品国产专区| 婷婷综合伊人| 在线黄色免费观看| 久久久精品天堂| 亚洲男人第一av| 精品乱码亚洲一区二区不卡| 美女羞羞视频在线观看| 国产精品夜间视频香蕉| 精品一区二区三区在线| 妺妺窝人体色www在线小说| 国产精品一区在线观看乱码| 久草福利资源在线| 欧美吞精做爰啪啪高潮| 精品欧美不卡一区二区在线观看| 国模私拍视频一区| 2021年精品国产福利在线| 性生活免费观看视频| 国产在线国偷精品免费看| 91香蕉视频污在线观看| 欧美另类高清zo欧美| h视频在线播放| 国产精品视频yy9099| 欧美码中文字幕在线| 成人中文字幕av| 欧美国产日韩精品免费观看| 国产成人自拍偷拍| 亚洲日本欧美中文幕| 欧亚一区二区| 视频一区国产精品| 麻豆精品在线播放| 69夜色精品国产69乱| 欧美一级淫片007| 欧美videosex性欧美黑吊| 91av一区二区三区| 欧美日韩精品免费观看视频完整| 久久久久无码精品| 亚洲国产欧美一区二区三区丁香婷| 亚洲大尺度网站| 国语自产精品视频在线看| 女同久久另类99精品国产| 国产高清精品在线观看| 久久久蜜桃精品| 中文字幕av免费观看| 久久久久www| a级日韩大片| 国产黄视频在线| 久久久精品免费观看| 亚洲天堂中文在线| 欧美成人黄色小视频| 国产精品天天看天天狠| 欧美女人性生活视频| 国产精品天干天干在观线| 国产一区二区三区四区视频| 精品自在线视频| 首页亚洲中字| 免费看污污网站| 亚洲美女一区二区三区| 可以免费看毛片的网站| 日本精品性网站在线观看| 三上亚洲一区二区| 潘金莲一级淫片aaaaa| 日韩欧美国产成人| 免费黄网在线观看| 精品久久久久久亚洲| 琪琪一区二区三区| 免费又黄又爽又色的视频| 亚洲精品中文字幕有码专区| 青青伊人久久| 亚洲人精品午夜射精日韩| 欧美国产一区二区| 亚洲国产精彩视频| 国产mv久久久| 欧美成人69| 国产高清一区二区三区四区| 欧美一区二区三区色| 樱桃视频成人在线观看| 中文字幕一区二区三区乱码| aaa亚洲精品一二三区| 亚洲熟女乱色一区二区三区久久久| 欧美激情性做爰免费视频| 欧美丝袜激情| 大尺度做爰床戏呻吟舒畅| 欧美日韩精品欧美日韩精品一综合| 国产盗摄——sm在线视频| 亚洲综合首页| 久久蜜桃一区二区| 性欧美videos另类hd|