PROOF IDEA Let A be a CFL and let G be a CFG that generates it. We must show that any sufficiently long string s in A can be pumped and remain in A. The idea behind this approach is simple. Let s be a very long string in A. (We make clear later what we mean by “very long.”) Because s is in A, it is derivable from G and so has a parse tree. The parse tree for s must be very tall because s is very long. That is, the parse tree must contain some long path from the start variable at the root of the tree to one of the terminal symbols at a leaf. On this long path, some variable symbol R must repeat because of the pigeonhole principle. As the following figure shows, this repetition allows us to replace the subtree under the second occurrence of R with the subtree under the first occurrence of R and still get a legal parse tree. Therefore, we may cut s into five pieces uvxyz as the figure indicates, and we may repeat the second and fourth pieces and obtain a string still in the language. In other words, uvixyiz is in A for any i ≥ 0.
The part where I get lost is "On this long path, some variable symbol R must repeat because of the pigeonhole principle".
Can someone explain this proof in an easier way?
What you have posted is a proof idea, not a proof. As is said in the proof idea, one must make clear what is meant by "very long". The point is that since there are only finitely many variable symbols, if we consider long enough strings, then the parse tree will have a path that is longer than the amount of variable symbols, and hence some variable symbol must be repeated on this path. This is because of the pigeonhole principle, which is, as Michael Sipser so eloquently puts it, "a fancy name for the rather obvious fact that if $p$ pigeons are placed into fewer than $p$ holes, some hole has to have more than one pigeon in it".