I have set autoindent and set tw=90 and set fo=t. Additionally I have working autocompletion that means when I type one character a popup menu come in. Because of popup menu in some situations, where all these 3 things happen to work together, it gives some very unpleasant random effect.Example:I have a line like this that is less than tw<some indentation>sdjfl ... sdkf SomeThen I add some text and have a cursor in the specified position in insert mode<some indentation>sdjfl ... sdkfslfj <cursor> SomeThen I type a character like here<some indentation>sdjfl ... sdkfslfj I SomeAnd vim wraps should wrap and indent me text like this<some indentation>sdjfl ... sdkfslfj <some indentation>I<cursor> SomeUnfortunately, I have this result<some indentation>sdjfl ... sdkfslfj <some indentation>I<cursor>SomeOr very often and more unfortunately I have this result<some indentation>sdjfl ... sdkfslfj <some indentation>SI<cursor>omeI figured out that when I turn off autocompletion, thanI have many correct result, and sometime this results where it cuts the space before cursor.Help me to solve this, please?The options and version of my vim--- Options ---  autoindent          guioptions=agit     laststatus=0        showbreak=       textwidth=90  background=dark     helplang=en         linebreak           showcmd             timeoutlen=700  backup              hidden            nomore              noshowmode            ttimeoutlen=900  comments=b:#,fb:-   history=1000        mouse=a             smartcase           ttyfast  confirm             hlsearch            number              smartindent         updatetime=800  copyindent          ignorecase          previewheight=30    softtabstop=2       wildignore=*.pyc  cursorcolumn        iminsert=0          ruler               splitbelow          wildmenu  cursorline          incsearch           scroll=26           splitright          window=55  expandtab         nojoinspaces          scrolloff=3         suffixesadd=.py  filetype=python     keywordprg=pydoc    shiftwidth=2        syntax=python  backspace=indent,eol,start  backupdir=~/Vim/Trash/backup  cinkeys=0{,0},0),:,!^F,o,O,e  commentstring=# %s  directory=~/Vim/Trash/swap  fileencoding=utf-8  fileencodings=utf-8,ucs-bom,latin1,iso-8859-5  formatoptions=tqcrow  grepprg=grep -nH --color  guicursor=n-c-v:block-Cursor-blinkwait1000-blinkon0-blinkoff250,i-ci:ver30-iCursor-blinkwait30000-blinkon200-blinkoff150  guifont=Powerline Consolas 13  include=^\s*\(from\|import\)  includeexpr=substitute(v:fname,'\.','/','g')  indentexpr=GetPythonIndent(v:lnum)  indentkeys=0{,0},:,!^F,o,O,e,<:>,=elif,=except  makeprg=make -f ~/Documents/Tests/Makefile  omnifunc=pythoncomplete#Complete  printoptions=paper:a4  termencoding=utf-8VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec  9 2014 17:36:41)Included patches: 1-488Modified by pkg-vim-maintainers@lists.alioth.debian.orgCompiled by buildd@Huge version with GTK2-GNOME GUI.  Features included (+) or not (-):+acl             +dialog_con_gui  +insert_expand   +mouse_sgr       +ruby            +vertsplit+arabic          +diff            +jumplist        -mouse_sysmouse  +scrollbind      +virtualedit+autocmd         +digraphs        +keymap          +mouse_urxvt     +signs           +visual+balloon_eval    +dnd             +langmap         +mouse_xterm     +smartindent     +visualextra+browse          -ebcdic          +libcall         +multi_byte      -sniff           +viminfo++builtin_terms  +emacs_tags      +linebreak       +multi_lang      +startuptime     +vreplace+byte_offset     +eval            +lispindent      -mzscheme        +statusline      +wildignore+cindent         +ex_extra        +listcmds        +netbeans_intg   -sun_workshop    +wildmenu+clientserver    +extra_search    +localmap        +path_extra      +syntax          +windows+clipboard       +farsi           +lua             +perl            +tag_binary      +writebackup+cmdline_compl   +file_in_path    +menu            +persistent_undo +tag_old_static  +X11+cmdline_hist    +find_in_path    +mksession       +postscript      -tag_any_white   -xfontset+cmdline_info    +float           +modify_fname    +printer         +tcl             +xim+comments        +folding         +mouse           +profile         +terminfo        +xsmp_interact+conceal         -footer          +mouseshape      +python          +termresponse    +xterm_clipboard+cryptv          +fork()          +mouse_dec       -python3         +textobjects     -xterm_save+cscope          +gettext         +mouse_gpm       +quickfix        +title           +xpm+cursorbind      -hangul_input    -mouse_jsbterm   +reltime         +toolbar         +cursorshape     +iconv           +mouse_netterm   +rightleft       +user_commands   
Autocomplete popup menu with autoindent and hard wrap in insert mode
autocompletion;indentation;wrapping;plugin you complete me
As the problem just happens when you are using the Ycm plugin, it is certainly something related to that plugin. You should check plugin documentation. In special, the FAQ section reports that some plugins that may cause interference:    9. FAQ |youcompleteme-faq|   1. I used to be able to 'import vim' in '.ycm_extra_conf.py', but now can't |import-vim|      :      :   18. YCM conflicts with UltiSnips TAB key usage |youcompleteme-ycm-conflicts-with-ultisnips-tab-key-usage|   19. Why isn't YCM just written in plain VimScript, FFS? |youcompleteme-why-isnt-ycm-just-written-in-plain-vimscript-ffs|   20. Why does YCM demand such a recent version of Vim? |youcompleteme-why-does-ycm-demand-such-recent-version-of-vim|   21. I get annoying messages in Vim's status area when I type |youcompleteme-i-get-annoying-messages-in-vims-status-area-when-i-type|   22. Nasty bugs happen if I have the 'vim-autoclose' plugin installed |vim-sub-autoclose|You could also search the current and closed issues on the bug tracker. If any of these solves your problem, you should open a new issue there.