diff --git a/README.md b/README.md
index 0d80e040bb2e70bafe0983662487c9a5c1ef4f9e..0ed444e73ff5141854b99e79d617b9f3e7c65985 100644
--- a/README.md
+++ b/README.md
@@ -97,6 +97,18 @@ There are 5 sections:
   * only lines starting with a + sign can be modified
   * no line can be deleted
 
+### Visual selection
+
+It is possible to stage part of hunk, by different ways:
+* By visually selecting some lines, then staging the selection with **S**.
+* By marking some lines "to be staged" with **M**, then staging these selected lines with **S**.
+* Staging individual lines with **L**.
+
+Visual selection and marked lines have some limitations for the moment:
+* It only work for "staging", not for "unstaging".
+* Selection/marks must be within a single hunk.
+* Marks not within the hunk currently staged are lost during stage process magit buffer refresh.
+
 ### Commands
 
 #### magit#show_magit()
diff --git a/doc/vimagit.txt b/doc/vimagit.txt
index 66bfaa996dded7c2059b34bebb6dfffc793882c7..2ee997b9b09aa07c9def092cc3be7f40c43a7678 100644
--- a/doc/vimagit.txt
+++ b/doc/vimagit.txt
@@ -109,6 +109,19 @@ INLINE MODIFICATIONS                               *vimagit-inline-modification*
   * only lines starting with a + sign can be modified
   * no line can be deleted
 
+VISUAL SELECTION                                      *vimagit-visual-selection*
+
+It is possible to stage part of hunk, by different ways:
+* By visually selecting some lines, then staging the selection with S.
+* By marking some lines "to be staged" with M, then staging these selected
+  lines with S.
+* Staging individual lines with L.
+
+Visual selection and marked lines have some limitations for the moment:
+* It only work for "staging", not for "unstaging".
+* Selection/marks must be within a single hunk.
+* Marks not within the hunk currently staged are lost during stage process magit
+  buffer refresh.
 
 COMMANDS                                                      *vimagit-commands*