USE VIM AS IDE

安裝依賴庫(支持Python 3、Lua、Ruby)

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \python3-dev ruby-dev lua5.1 lua5.1-dev git


刪除原有Vim

首先查詢系統中有哪些與vim相關的軟件,我的是vim、vim-common和vim-run,然后徹底刪除他們:

dpkg -l | grep vim

sudo dpkg -P vim vim-common vim-run


下載vim源碼安裝

安裝前先獲取Python的配置路徑,比如我的是/usr/lib/python2.7/config-x86_64-linux-gnu

git clone https://github.com/vim/vim.git

cd vim

./configure --with-features=huge? --enable-multibyte? --enable-rubyinterp? --enable-pythoninterp? --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu? --enable-perlinterp? --enable-luainterp? --enable-gui=gtk2 --enable-cscope --prefix=/usr

make

sudo make install


下載vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim


安裝pathogen

sudo apt-get install pathogen

sudo apt install curl

mkdir -p ~/.vim/autoload ~/.vim/bundle

curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim


安裝插件

打開vim,運行指令:PluginInstall

vim

:PluginInstall


修改~/.vimrc

將文末代碼復制到vimrc

vi ~/.vimrc



參考來源:

https://github.com/yangyangwithgnu/use_vim_as_ide#3.4

http://www.lxweimin.com/p/27816557adcb

https://github.com/strivexj/Vim/blob/master/vimrc


execute pathogen#infect()

" 定義快捷鍵的前綴,即

let mapleader=";"

" 開啟文件類型偵測

filetype on

" 根據偵測到的不同類型加載對應的插件

filetype plugin on

"自動保存

set autowrite

" 在處理未保存或只讀文件的時候,彈出確認

set confirm

" 定義快捷鍵到行首和行尾

"nmap LB 0

"nmap LE $

noremap H ^

noremap L $

" 設置快捷鍵將選中文本塊復制至系統剪貼板

vnoremap y "+y

" 設置快捷鍵將系統剪貼板內容粘貼至 vim

nmap p "+p

"定義快捷鍵關閉當前分割窗口;

nmap q :q

" 定義快捷鍵保存當前窗口內容

nmap w :w

" 定義快捷鍵保存所有窗口內容并退出 vim

nmap WQ :wa:q

" 不做任何保存,直接退出 vim

nmap Q :qa!

" 依次遍歷子窗口

nnoremap nw

" 跳轉至右方的窗口

nnoremap lw l

" 跳轉至左方的窗口

nnoremap hw h

" 跳轉至上方的子窗口

nnoremap kw k

" 跳轉至下方的子窗口

nnoremap jw j

" 定義快捷鍵在結對符之間跳轉

nmap M %

" 映射全選+復制 ctrl+a

map? ggVGY

map!? ggVGY

map? gg=G

" 選中狀態下 Ctrl+c 復制

vmap? "+y

"nmap? ^V$y

" 設置環境保存項

set sessionoptions="blank,buffers,globals,localoptions,tabpages,sesdir,folds,help,options,resize,winpos,winsize"

" 保存 undo 歷史

set undodir=~/.undo_history/

set undofile

" 保存快捷鍵

map ss :mksession! my.vim :wviminfo! my.viminfo

" 恢復快捷鍵

map rs :source my.vim :rviminfo my.viminfo

set fileformat=unix? ? "設置以unix的格式保存文件"

set cindent? ? ? ? "設置C樣式的縮進格式"

set tabstop=4? ? "設置table長度"

set shiftwidth=4? ? ? ? "同上"

set showmatch? ? "顯示匹配的括號"

set scrolloff=5? ? ? ? "距離頂部和底部5行"

set fenc=utf-8? ? ? "文件編碼"

set backspace=2

set matchtime=5

set ignorecase? ? ? ? "忽略大小寫"

" 讓配置變更立即生效

autocmd BufWritePost $MYVIMRC source $MYVIMRC

" 通過使用: commands命令,告訴我們文件的哪一行被改變過

set report=0

" 在被分割的窗口間顯示空白,便于閱讀

set fillchars=vert:\ ,stl:\ ,stlnc:\

"change word to uppercase, I love this very much

inoremap? gUiwea

"用jk退出編輯模式

inoremap jk

"直接輸入空格進入命令模式

noremap? :

" 開啟實時搜索功能

set incsearch

" 關閉兼容模式

set nocompatible

" vim 自身命令行模式智能補全

set wildmenu

" vundle 環境設置

filetype off

set rtp+=~/.vim/bundle/Vundle.vim

" vundle 管理的插件列表必須位于 vundle#begin() 和 vundle#end() 之間

call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

Plugin 'altercation/vim-colors-solarized'

Plugin 'tomasr/molokai'

Plugin 'vim-scripts/phd'

Plugin 'Lokaltog/vim-powerline'

Plugin 'octol/vim-cpp-enhanced-highlight'

Plugin 'nathanaelkane/vim-indent-guides'

Plugin 'Yggdroot/indentLine'

Plugin 'vim-autopep8'

Plugin 'derekwyatt/vim-fswitch'

Plugin 'kshenoy/vim-signature'

Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'

Plugin 'majutsushi/tagbar'

Plugin 'vim-scripts/indexer.tar.gz'

Plugin 'vim-scripts/DfrankUtil'

Plugin 'vim-scripts/vimprj'

Plugin 'dyng/ctrlsf.vim'

Plugin 'terryma/vim-multiple-cursors'

Plugin 'scrooloose/nerdcommenter'

Plugin 'vim-scripts/DrawIt'

Plugin 'SirVer/ultisnips'

Plugin 'Valloric/YouCompleteMe'

Plugin 'derekwyatt/vim-protodef'

Plugin 'scrooloose/nerdtree'

Plugin 'fholgado/minibufexpl.vim'

Plugin 'gcmt/wildfire.vim'

Plugin 'sjl/gundo.vim'

Plugin 'Lokaltog/vim-easymotion'

Plugin 'suan/vim-instant-markdown'

Plugin 'lilydjwg/fcitx.vim'

Plugin 'jiangmiao/auto-pairs'

Plugin 'vim-airline/vim-airline'

Plugin 'vim-airline/vim-airline-themes'

Plugin 'kien/rainbow_parentheses.vim'

Plugin 'vim-syntastic/syntastic'

Plugin 'jistr/vim-nerdtree-tabs' "vim-nerdtree-tabs 插件是為了解決nerdtree不能在tab之間共享的問題

Plugin 'sickill/vim-monokai'

Plugin 'kien/ctrlp.vim'

Plugin 'klen/python-mode'

Plugin 'PyCQA/pylint'

" 插件列表結束

call vundle#end()

set autoread? ? " 設置當文件在外部被修改,自動更新該文件

set autochdir? " 自動設置當前目錄為正在編輯的目錄

set showcmd " 狀態欄顯示當前執行的命令

"允許在vim中運行python

let g:pymode_run = 1

"運行python的快捷鍵為E

let g:pymode_run_key = ''

map? " disable python-mode RopeCodeAssistInsertMode Key binding

"Ctrl+O打開自動補全(使用Ctrl+N和Ctrl+P來向前、向后翻頁)

inoremap? =RopeCodeAssistInsertMode()

let g:tagbar_width =25

"設置tagbar默認打開(大屏幕顯示器可以打開)

"autocmd VimEnter * nested TagbarOpen

let g:tagbar_autofocus = 0

" ctrap

set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.png,*.jpg,*.jpeg,*.gif " MacOSX/Linux

let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'

"

"ctrlp默認會使用grep進行搜索,效率低且慢。所以,我使用了ag去替換默認的搜索

"功能。ag是一款輕量級的搜索工具,速度非常快。為了集成ag,需要添加下列配置:

if executable('ag')

" Use Ag over Grep

set grepprg=ag\ --nogroup\ --nocolor

" Use ag in CtrlP for listing files.

let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'

" Ag is fast enough that CtrlP doesn't need to cache

let g:ctrlp_use_caching = 0

endif

" 顯示/隱藏 MiniBufExplorer 窗口

map bl :MBEToggle

" buffer 切換快捷鍵

map? :MBEbn

map? :MBEbp

" 配色方案

set background=dark

"colorscheme solarized

"colorscheme phd

"colorscheme molokai

colorscheme monokai

" 禁止光標閃爍

set gcr=a:block-blinkon0

" 禁止顯示滾動條

set guioptions-=l

set guioptions-=L

set guioptions-=r

set guioptions-=R

" 禁止顯示菜單和工具條

set guioptions-=m

set guioptions-=T

" 將外部命令 wmctrl 控制窗口最大化的命令行參數封裝成一個 vim 的函數

fun! ToggleFullscreen()

call system("wmctrl -ir " . v:windowid . " -b toggle,fullscreen")

endf

" 全屏開/關快捷鍵

map? :call ToggleFullscreen()

" 啟動 vim 時自動全屏

autocmd VimEnter * call ToggleFullscreen()

" 當同時顯示多個文件中的tag時,可使taglist只顯示當前文件tag,其它文件的tag都被折疊起來

let Tlist_File_Fold_Auto_Close=1

" 如果taglist窗口是最后一個窗口,則退出vim

let Tlist_Exit_OnlyWindow=1

" 缺省情況下,雙擊一個tag時,才會跳到該tag定義的位置,設置單擊tag就跳轉

let? Tlist_Use_SingleClick=1

set mouse=a? ? ? ? ? ? " 開啟鼠標

" 總是顯示狀態欄

set laststatus=2

" 顯示光標當前位置

set ruler

" 開啟行號顯示

set number

" 高亮顯示當前行/列

set cursorline

" set cursorcolumn

" 高亮顯示搜索結果

set hlsearch

" 設置 gvim 顯示字體

" set guifont=YaHei\ Consolas\ Hybrid\ 11.5

" 禁止折行

set nowrap

" 設置狀態欄主題風格

" let g:Powerline_colorscheme='solarized256'

" 自適應不同語言的智能縮進

filetype indent on

" 將制表符擴展為空格

set expandtab

" 設置編輯時制表符占用空格數

set tabstop=4

" 設置格式化時制表符占用空格數

set shiftwidth=4

" 讓 vim 把連續數量的空格視為一個制表符

set softtabstop=4

"縮進指示線"

let g:indentLine_char='┆'

let g:indentLine_enabled = 1

"autopep8設置"

let g:autopep8_disable_show_diff=1

" 基于縮進或語法進行代碼折疊(za,打開或關閉當前折疊;zM,關閉所有折疊;zR,打開所有折疊)

"set foldmethod=indent

set foldmethod=syntax

" 啟動 vim 時關閉折疊代碼

set nofoldenable

" 開啟語法高亮功能

syntax enable

" 允許用指定語法高亮配色方案替換默認方案

syntax on

filetype plugin indent on

" *.cpp 和 *.h 間切換(sw實現切換)

nmap? sw :FSHere

let g:UltiSnipsSnippetDirectories=["mysnippets"]

" UltiSnips 的 tab 鍵與 YCM 沖突,重新設定

let g:UltiSnipsExpandTrigger=""

let g:UltiSnipsJumpForwardTrigger=""

let g:UltiSnipsJumpBackwardTrigger=""

"顯示書簽"

let NERDTreeShowBookmarks=1

"設置忽略文件類型"

let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']

"窗口大小"

let NERDTreeWinSize=25

"關閉各種按鍵叮叮聲音和閃屏

set vb t_vb=

au GuiEnter * set t_vb=

set backspace=indent,eol,start

set novisualbell " 關閉使用可視響鈴代替呼叫

set noerrorbells " 關閉錯誤信息響鈴

set magic " 設置魔術

set smartindent " 開啟新行時使用智能自動縮進

set cmdheight=1 " 設定命令行的行數為 1

"記住上次退出的位置

au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif

let g:airline_powerline_fonts = 1

" 是否啟用頂部tabline

let g:airline#extensions#tabline#enabled = 1

" 頂部tabline顯示方式

let g:airline#extensions#tabline#left_sep = ' '

let g:airline#extensions#tabline#left_alt_sep = '|'

let g:airline_theme="deus"

let g:Powerline_colorscheme='deus'

"彩虹括號

let g:rbpt_colorpairs = [ ['brown', 'RoyalBlue3'], ['Darkblue', 'SeaGreen3'], ['darkgray', 'DarkOrchid3'], ['darkgreen', 'firebrick3'],['darkcyan', 'RoyalBlue3'],['darkred', 'SeaGreen3'],['darkmagenta', 'DarkOrchid3'],['brown', 'firebrick3'],['gray', 'RoyalBlue3'],['black',? ? ? 'SeaGreen3'],['darkmagenta', 'DarkOrchid3'],['Darkblue',? 'firebrick3'],['darkgreen', 'RoyalBlue3'],['darkcyan', 'SeaGreen3'],['darkred', 'DarkOrchid3'],['red', 'firebrick3']]

let g:rbpt_max = 16

au VimEnter * RainbowParenthesesToggle

au Syntax * RainbowParenthesesLoadRound

au Syntax * RainbowParenthesesLoadSquare

au Syntax * RainbowParenthesesLoadBraces

"設置注釋快捷鍵

map? ci

" ******************NERDTree***************************************************************************

"? close vim if the only window left open is a NERDTree

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

"let g:nerdtree_tabs_open_on_console_startup=1

" NERDTress File highlighting

"Set different colors for different file extensions

"NERDTress File highlighting

"Start

function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg)

exec 'autocmd filetype nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg

exec 'autocmd filetype nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#'

endfunction

call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515')

call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#151515')

call NERDTreeHighlightFile('md', 'blue', 'none', '#3366FF', '#151515')

call NERDTreeHighlightFile('yml', 'yellow', 'none', 'yellow', '#151515')

call NERDTreeHighlightFile('config', 'yellow', 'none', 'yellow', '#151515')

call NERDTreeHighlightFile('conf', 'yellow', 'none', 'yellow', '#151515')

call NERDTreeHighlightFile('json', 'yellow', 'none', 'yellow', '#151515')

call NERDTreeHighlightFile('html', 'yellow', 'none', 'yellow', '#151515')

call NERDTreeHighlightFile('styl', 'cyan', 'none', 'cyan', '#151515')

call NERDTreeHighlightFile('css', 'cyan', 'none', 'cyan', '#151515')

call NERDTreeHighlightFile('coffee', 'Red', 'none', 'red', '#151515')

call NERDTreeHighlightFile('js', 'Red', 'none', '#ffa500', '#151515')

call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515')

"End

"Open NERDTree when no file is specified

autocmd StdinReadPre * let s:std_in=1

autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

" 顯示文件中的類、函數、變量的功能的TagbarToggle快捷鍵F10

map? :TagbarToggle

"F9開啟和關閉樹"

map? :NERDTreeToggle

let NERDTreeChDirMode=1

"*************************************NREDTree-end******************************************

" configure syntastic syntax checking to check on open as well as save

"是否在打開文件時檢查

let g:syntastic_check_on_open=1

" 是否在保存文件后檢查

"let g:syntastic_check_on_wq=1

let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute \"ng-"]

let g:syntastic_always_populate_loc_list = 1

let g:syntastic_auto_loc_list = 1

set statusline+=%#warningmsg#

set statusline+=%{SyntasticStatuslineFlag()}

set statusline+=%*

" 設置錯誤符號

let g:syntastic_error_symbol='?'

"設置警告符號

let g:syntastic_warning_symbol=''

let g:syntastic_python_checkers=['pylint','javac','php', 'phpcs', 'phpmd']

let g:syntastic_python_pylint_args='--disable=C0111,R0903,C0301'

let g:syntastic_aggregate_errors = 1

"自動跳轉到發現的第一個錯誤或警告處

let g:syntastic_auto_jump = 1

"進行實時檢查,如果覺得卡頓,將下面的選項置為1

let g:syntastic_check_on_wq = 1

"高亮錯誤

let g:syntastic_enable_highlighting=1

" YCM 補全菜單配色

" 菜單

highlight Pmenu ctermfg=10 ctermbg=8 guifg=#005f87 guibg=#EEE8D5

" 選中項

highlight PmenuSel ctermfg=4 ctermbg=6 guifg=#AFD700 guibg=#106900

" 補全功能在注釋中同樣有效

let g:ycm_complete_in_comments=1

" 允許 vim 加載 .ycm_extra_conf.py 文件,不再提示

let g:ycm_confirm_extra_conf=0

" 開啟 YCM 標簽補全引擎

let g:ycm_collect_identifiers_from_tags_files=1

" 引入 C++ 標準庫tags

set tags+=/data/misc/software/misc./vim/stdcpp.tags

" YCM 集成 OmniCppComplete 補全引擎,設置其快捷鍵

inoremap ;

" 補全內容不以分割子窗口形式出現,只顯示補全列表

set completeopt-=preview

" 從第一個鍵入字符就開始羅列匹配項

let g:ycm_min_num_of_chars_for_completion=1

" 禁止緩存匹配項,每次都重新生成匹配項

" let g:ycm_cache_omnifunc=0

" 語法關鍵字補全

let g:ycm_seed_identifiers_with_syntax=1

" 設置背景透明

" hi Normal guibg=NONE ctermbg=NONE

" When vimrc is edited, reload it

autocmd! bufwritepost vimrc source ~/.vimrc

" Turn backup off, since most stuff is in SVN, git anyway...

set nobackup

set nowb

set noswapfile

""""""""""""""""""""""

"Quickly Run

""""""""""""""""""""""

map? :call CompileRunGcc()

func! CompileRunGcc()

exec "w"

if &filetype == 'c'

exec "!g++ % -o %<"

exec "!time ./%<"

elseif &filetype == 'cpp'

exec "!g++ % -o %<"

exec "!time ./%<"

elseif &filetype == 'java'

exec "!javac %"

exec "!time java %<"

elseif &filetype == 'sh'

:!time bash %

elseif &filetype == 'python'

exec "!time python2.7 %"

elseif &filetype == 'html'

exec "!firefox % &"

elseif &filetype == 'go'

"? ? ? ? exec "!go build %<"

exec "!time go run %"

elseif &filetype == 'mkd'

exec "!~/.vim/markdown.pl % > %.html &"

exec "!firefox %.html &"

endif

endfunc

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""新文件標題""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"新建.c,.h,.sh,.java文件,自動插入文件頭

autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java,*.py exec ":call SetTitle()"

""定義函數SetTitle,自動插入文件頭

func! SetTitle()

"如果文件類型為.sh文件

if &filetype == 'sh'

call setline(1,"\#########################################################################")

call append(line("."), "\# File Name: ".expand("%"))

call append(line(".")+1, "\# Author: cwj")

call append(line(".")+2, "\# mail: 1003214597@qq.com")

call append(line(".")+3, "\# Created Time: ".strftime("%c"))

call append(line(".")+4, "\#########################################################################")

call append(line(".")+5, "\#!/bin/bash")

call append(line(".")+6, "")

endif

if &filetype == 'py'

call setline(1,"```")

call append(line(".")+1, "\# File Name: ".expand("%"))

call append(line(".")+2, "\# Author: cwj")

call append(line(".")+3, "\# mail: 1003214597@qq.com")

call append(line(".")+4, "\# Created Time: ".strftime("%c"))

call append(line(".")+5, "```")

else

call setline(1, "/*************************************************************************")

call append(line("."), "? ? File Name: ".expand("%"))

call append(line(".")+1, "? ? Author: cwj")

call append(line(".")+2, "? ? Mail: 1003214597@qq.com")

call append(line(".")+3, "? ? Created Time: ".strftime("%c"))

call append(line(".")+4, " ************************************************************************/")

call append(line(".")+5, "")

endif

if &filetype == 'cpp'

call append(line(".")+6, "#include")

call append(line(".")+7, "using namespace std;")

call append(line(".")+8, "")

call cursor(10,2)

elseif &filetype == 'c'

call append(line(".")+6, "#include")

call append(line(".")+7, "")

call cursor(9,2)

elseif &filetype == 'java'

call append(line(".")+6,"public class ".expand("%:t:r")." {")

call append(line(".")+7, "? ? ? public static void main(String[] args) {")

call append(line(".")+8, "")

call append(line(".")+9, "? ? ? }")

call append(line(".")+10, "}")

call cursor(10,2)

else

call cursor(8,2)

endif

"新建文件后,自動定位到文件末尾

" autocmd BufNewFile * normal G

endfunc

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,283評論 6 530
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,947評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,094評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,485評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,268評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,817評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,906評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,039評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,551評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,502評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,662評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,188評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,907評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,304評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,563評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,255評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,637評論 2 370

推薦閱讀更多精彩內容